Trang web của tôi có chế độ xem POST của AJAX có thể được gọi từ bất kỳ trang nào trên ứng dụng (theo dõi sự kiện). Chế độ xem này được bảo vệ bởi CSRF. Trong một số trường hợp, cookie CSRF không được đặt và cuộc gọi POST không thành công.Django: Buộc mã thông báo CSRF trên tất cả các phản hồi
Thay vì tự trang trí tất cả các chế độ xem với @ensure_csrf_cookie
,
Tôi đang nghĩ đến việc viết
Tôi đã tạo một phần mềm trung gian thực thi Django để đặt cookie CSRF trên tất cả các phản hồi. Cách tiếp cận này có đúng không? Liệu nó có tạo ra một lỗ hổng bảo mật mà tôi không biết?
Cập nhật: đây là mã trung gian:
from django.middleware.csrf import get_token
class ForceCsrfCookieMiddleware(object):
def process_request(self, request):
get_token(request)
an ninh lỗ hổng? Tôi nghĩ là không. Bởi vì bạn chỉ đang triển khai chức năng 'secure_csrf_cookie' trong phần mềm trung gian. Mặc dù, đọc mã nguồn của trang trí đó. – xyres