Backbone.js xử lý dữ liệu đăng lên máy chủ dưới mui xe, do đó, không có cách nào dễ dàng để chèn mã thông báo CSRF vào tải trọng. Làm thế nào tôi có thể bảo vệ trang web của mình chống lại CSRF trong tình huống này?Làm thế nào để bảo vệ chống lại CSRF khi sử dụng Backbone.js để đăng dữ liệu?
Trong câu trả lời SO này: https://stackoverflow.com/a/10386412/954376, đề xuất là xác minh tiêu đề x-Requested-By là XMLHTTPRequest. Điều này có đủ để chặn tất cả các nỗ lực CSRF không?
Trong tài liệu Django, đề xuất là thêm mã thông báo CSRF vào tiêu đề tùy chỉnh khác trong mọi yêu cầu AJAX: https://docs.djangoproject.com/en/1.5/ref/contrib/csrf/#ajax. Điều này có cần thiết không?
Tôi hiểu nếu cuộc tấn công sử dụng biểu mẫu ẩn, tôi an toàn bằng cách chỉ đảm bảo yêu cầu là từ XMLHTTPRequest. Nhưng có bất kỳ thủ thuật tấn công CSRF nào có thể giả mạo tiêu đề không?
"Tôi an toàn bằng cách chỉ đảm bảo yêu cầu là từ XMLHTTPRequest "- Bạn không thể đảm bảo điều đó. – Quentin