Tôi chưa thể tìm thấy hướng dẫn dễ dàng để bảo mật ứng dụng Ruby on Rails với số Firesheep.Làm cách nào để bảo mật ứng dụng Rails chống lại Firesheep?
Trong trường hợp bạn không biết, Firesheep kích hoạt các cookie phiên nếu ứng dụng của bạn không buộc SSL và đặt cờ an toàn trong cookie. Tôi phải làm một số tìm kiếm để tìm thấy hai điều này, vì vậy tôi nghĩ rằng tôi muốn đăng những gì tôi tìm thấy ở đây và xem nếu có bất cứ điều gì khác tôi đang mất tích.
Bước 1 Force SSL
Có hai cách để làm điều này mà tôi tìm thấy. Một người đang sử dụng plugin ssl_requirement, nhưng đây là một nỗi đau vì bạn phải chỉ định cụ thể ssl_required :action1, :action2
trong mọi bộ điều khiển.
Cách thích hợp hơn có vẻ là bằng cách sử dụng Rack Middleware, qua bài đăng này: Force SSL using ssl_requirement in Rails 2 app. Làm việc như một say mê.
Bước 2 Hãy cookie đảm bảo
Đối với điều này tôi theo these directions, mà nói với bạn để đặt sau đây trong config/environment/production.rb
tập tin của bạn:
config.action_controller.session = {
:key => 'name_of_session_goes_here',
:secret => 'you need to fill in a fairly long secret here and obviously do not copy paste this one',
:expire_after => 14 * 24 * 3600, #I keep folks logged in for two weeks
:secure => true #The session will now not be sent or received on HTTP requests.
}
này được tất cả khá thẳng về phía trước on Rails của tôi 2.x ứng dụng. Tôi đã bỏ lỡ bất cứ điều gì? Nó có khác với Rails 3 không?
Cảm ơn bạn đã trả lời. Tôi đang triển khai Heroku để middleware có vẻ là nơi tốt nhất để buộc SSL. –
Lưu ý rằng tùy chọn để làm cho cookie không thể truy cập được với JavaScript là ': httponly' thay vì': http_only'. Sau này đã không được chấp nhận trong Rails 2.3 (hoặc sớm hơn) và loại bỏ trong Rails 3. Tôi tin rằng những thay đổi này là để mang Rails phù hợp với Rack. –
Câu trả lời hay, nhưng việc sử dụng HTTP trong thử nghiệm và HTTPS trong sản xuất giúp bạn dễ dàng bỏ lỡ các vấn đề về nội dung hỗn hợp và các lỗi tinh vi khác. –