2012-02-24 29 views
8

Tại sao mọi người bỏ qua xác minh và tăng tính dễ bị tổn thương bảo mật của ứng dụng? Có ích khi vô hiệu hóa nó trên các trang chỉ có các yêu cầu GET? Cảm ơn trước.Khi nào bỏ qua verify_authenticity_token

Trả lời

4

CRSF séc đã được bỏ qua cho yêu cầu GET trong đường ray

http://guides.rubyonrails.org/security.html

3,1 CSRF pháp đối phó - Thứ nhất, như là cần thiết bởi W3C, sử dụng GET và POST một cách thích hợp. Thứ hai, một mã thông báo bảo mật trong các yêu cầu không GET sẽ bảo vệ ứng dụng của bạn khỏi CSRF.

Bạn cũng có thể xem chính phương thức đó.

http://api.rubyonrails.org/classes/ActionController/RequestForgeryProtection.html#method-i-verify_authenticity_token

.... Also, GET requests are not protected as these should be idempotent. .... 

verified_request?() 
    Returns true or false if a request is verified. Checks: 
    is it a GET request? Gets should be safe and idempotent 
1

Nếu bạn có ứng dụng tên miền chéo, bạn có thể gặp lỗi với xác minh bằng lời nói và bạn có thể tắt nó, nhưng tất nhiên ứng dụng của bạn sẽ không an toàn. Trong đường ray 3 có những phương pháp đặc biệt dành cho giải pháp tên miền chéo trong ra khỏi hộp

+0

Cảm ơn cho câu trả lời. Bạn có biết nếu có bất kỳ lợi ích nào (ví dụ như lợi ích hiệu suất) để bỏ qua xác minh trên các trang chỉ có yêu cầu GET? – Steve

+0

Bạn có thể chỉnh sửa trong dòng application_controller: 'protect_from_forgery: except => [: index,: show]' – ka8725

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