Tôi sử dụng django và ckeditor để cung cấp hương vị wysiwyg cho TextEdits. Tôi muốn sử dụng chức năng tải lên tệp CKEditor (trong hộp thoại filebrowser/image), nhưng POST được thực hiện bởi CKEditor để tải lên hình ảnh chỉ chứa dữ liệu tệp.Cách thêm trường vào giá trị POST trong tệp Công cụ chỉnh sửa tải lên
Đây là vấn đề khi kiểm tra CSRF. Tôi không thể tìm thấy trong tài liệu CKEditor và nguồn một nơi để thay đổi dữ liệu POST cho tải lên tệp, để thêm csrf_token của django trong dữ liệu POST.
Như một giải pháp thay thế, tôi có thể thay đổi thông số FilloadowserUploadUrl để bao gồm dữ liệu csrf trong URL tải lên, sử dụng @csrf_exempt cho chế độ xem tải lên và kiểm tra tham số request.GET để kiểm tra csrf. Nhưng giải pháp này có an toàn không?
Dù sao, nếu ai đó biết làm thế nào để bao gồm CSRF thẻ trực tiếp trong ckeditor dữ liệu tập tin tải lên POST, tôi mạnh mẽ quan tâm ...
Bạn đang sử dụng [django-ckeditor] (http://pypi.python.org/pypi/django-ckeditor) hoặc một tiện ích con khác? Nếu bạn đang viết nó một mình - đó là chính xác, bạn không thể thêm một cái gì đó để POST vì cơ thể được đăng là tập tin chính nó. Vì vậy, có, bạn cần cung cấp mã thông báo trong thông số url. – ilvar
thậm chí django-ckeditor không sử dụng bảo vệ CSRF cho tập tin tải lên (và đây là IMHO xấu): @csrf_exempt def tải lên (theo yêu cầu): """ cập nhật một tập tin và gửi lại URL của mình cho ckeditor TODO:. Xác nhận tải lên "" " – jmbarbier