Tôi đang viết ra sự hiểu biết của mình về cơ chế csrf protcetion
trong django
.Xin vui lòng sửa lỗi nếu bị lỗi.hiểu csrf trong lĩnh vực ẩn django dưới dạng và CSRFCookie
csrfViewMiddleware
tạo một chuỗi duy nhất và lưu trữ trong trường ẩn 'csrfmiddlewaretoken' của biểu mẫu có nguồn gốc từ máy chủ.
Khi ai đó cố gắng đăng biểu mẫu, trang web sẽ kiểm tra trường 'csrfmiddlewaretoken
' và giá trị của trường.Nếu nó sai hoặc không được đặt, khi đó, tìm thấy một nỗ lực csrf.
Nhưng sau đó, chính xác thì CSRFCookie
là gì? The doc nói rằng giá trị duy nhất được thiết lập trong CSRFCookie
và cũng trong hidden field
. Đây là nơi tôi đang bối rối. Một cookie được gửi đến trình duyệt với chuỗi duy nhất được nhúng? Tôi muốn ai đó có thể giải thích điều này một chút rõ ràng.
cảm ơn bạn,
Vì vậy, chỉ một trình duyệt của người dùng được xác thực mới nhận được mã thông báo này chứ không phải tất cả những người truy cập trang web.Điều đó có đúng không? – damon
Không chắc chắn cách Django xử lý chính xác - nó có thể bảo vệ tất cả người dùng bất kể trạng thái xác thực. Về cơ bản, bất kỳ hành động nào có khả năng thay đổi một số khía cạnh của ứng dụng của bạn đều phải có bảo vệ CSRF. – Todd