2012-04-04 44 views
11

Tôi đang sử dụng Hpricot và OpenURI để phân tích các trang web và trích xuất URL từ chúng.open-uri không chuyển hướng http đến https

Khi tôi nhận được liên kết như "http: rapidshare.com", nó không chuyển hướng đến https. Đây là lỗi tôi nhận:

/home/leonidus/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/open-uri.rb:216:in 
`open_loop': redirection forbidden: http:.................=>  
https:......................... 
. 
. 

Tôi cố gắng để sử dụng bộ xử lý ngoại lệ OPENURI::HTTPREDIRECT nhưng sau đó một lần nữa tôi nhận được lỗi tương tự. Tôi đã thử tất cả các blog nhưng nó cũng không được giải quyết.

+3

https://github.com/jaimeiniesta/open_uri_redirections. vá được đóng gói như một viên ngọc. –

+0

gem 'open_uri_redirections' làm việc cho tôi. Gracias Jaime! –

Trả lời

13

Xem this Ruby bug report để thảo luận về lý do bạn gặp sự cố này. Xem this gist để có bản vá khỉ cho OpenURI để cho phép chuyển hướng "không an toàn".

+0

Lỗi trong đá quý kẹp giấy. Bất kỳ ý tưởng nếu nó đã được cố định ở bất kỳ phiên bản nào? –

+0

"Cập nhật bởi Yusuke Endoh hơn 1 năm trước - Tracker đã thay đổi từ Bug thành Feature" – ZirconCode

+0

Đây là câu trả lời cũ, nhưng đáng nói là: Lý do không an toàn là bất kỳ và tất cả các yêu cầu qua HTTP đều không có giấy thiếc nhưng vẫn có thể cơ hội được sửa đổi trên chuyến bay. Việc vá mã để cho phép các chuyển hướng không an toàn giới thiệu một vấn đề bảo mật, khi khóa học chính xác là sử dụng https: // luôn trên bất kỳ mạng không tin cậy nào và xem http: // với sự nghi ngờ và giảm thiểu sự riêng tư. – Barry

Các vấn đề liên quan