Mặc dù Cross Site Request Forgery thường được phân loại là tấn công tài khoản của người dùng đã được xác thực thông qua một trang web khác, các kỹ thuật được sử dụng để chống lại nó sẽ hoạt động cho bạn ở mức độ nào đó, ngay cả khi bạn nói, người dùng của bạn không được xác thực như vậy.
Cụ thể, tạo một giá trị duy nhất (một lần) với mọi hình thức, như được mô tả trong Jeff Atwood's article here sẽ giúp ngăn chặn các trang web khác gửi dữ liệu đến máy chủ của bạn - nếu bạn xác thực giá trị không được gửi bằng POST yêu cầu là một trong những bạn đã tạo gần đây, ít nhất nó phải đến từ một người đã "truy cập" trang web của bạn bằng cách nào đó.
Tuy nhiên, điều đó sẽ không ngăn người gửi spam tấn công trang web của bạn bằng cách cạo các giá trị nonce từ trang web của bạn, tức là giả vờ là người dùng và sử dụng biểu mẫu thực tế của bạn. Đối với điều đó, bạn có thể muốn xem xét các kỹ thuật khác nhau như CAPTCHA s, danh sách đen và các xác thực khác.
Cá nhân, tôi nghĩ nếu bạn không sử dụng người dùng đã được xác thực (theo đó tôi muốn yêu cầu CAPTCHA và xác thực địa chỉ email để người dùng đăng ký, sau đó yêu cầu họ xác thực trước khi tải lên) thì tôi ' d nói rằng bạn muốn khá nhiều có để sử dụng hệ thống CAPTCHA tốt, có thể kết hợp với việc kiểm tra thường xuyên hoạt động bất thường và lấy mẫu video tải lên để chống lại spam và tấn công không thể tránh khỏi. Có một lý do khiến các dịch vụ web phổ biến nhất yêu cầu những kiểm tra này, thật đáng buồn.
(Ngẫu nhiên, các phiên hoạt động tốt với Ajax - chỉ cần đảm bảo sử dụng cùng một mã xử lý phiên trong trang phản hồi yêu cầu Ajax. Nhưng không có người dùng được xác thực, các phiên sẽ không mua bất kỳ thứ gì trong cách an toàn, theo như tôi thấy. Một spambot có thể đối phó hoàn toàn tốt với các phiên.)
Nguồn
2011-09-06 12:34:34