Tôi đang cố gắng viết một trang web ở Django nơi URL API giống với URL của người dùng. Nhưng tôi đang gặp sự cố với các trang sử dụng yêu cầu POST và bảo vệ CSRF. Ví dụ: nếu tôi có trang/foo/thêm Tôi muốn có thể gửi yêu cầu POST tới trang theo hai cách:Làm cách nào để tắt tính năng bảo vệ csrf của Django chỉ trong một số trường hợp?
- Là người dùng cuối (được xác thực bằng cookie phiên) gửi biểu mẫu. Điều này đòi hỏi phải bảo vệ CSRF.
- Là ứng dụng khách API (được xác thực bằng tiêu đề yêu cầu HTTP). Điều này sẽ không thành công nếu tính năng bảo vệ CSRF được bật.
Tôi đã tìm thấy nhiều cách khác nhau để tắt CSRF, chẳng hạn như @csrf_exempt, nhưng tất cả đều vô hiệu hóa CSRF cho toàn bộ chế độ xem. Có cách nào để kích hoạt/vô hiệu hóa nó ở mức chi tiết hơn không? Hoặc tôi sẽ phải thực hiện bằng cách bảo vệ CSRF của riêng từ đầu?
Bạn đã kiểm tra [tài liệu bảo vệ csrf] (https://docs.djangoproject.com/en/dev/ref/contrib/csrf/)? – machaku
Tôi đã đọc các bit của nó, nhưng rõ ràng không đọc tất cả các kịch bản. Cảm ơn! – lucas