我使用 django-ckeditor-5 包成功显示了 ckeditor5,但无法上传图像,并且无法在结果页面上显示 youtube 视频。
这是我在后端控制台和浏览器上遇到的错误。
Forbidden (CSRF token from the 'X-Csrftoken' HTTP header has incorrect length.): /ckeditor5/image_upload/
WARNING 2024-04-08 09:40:09,120 log 10 135125224380160 Forbidden (CSRF token from the 'X-Csrftoken' HTTP header has incorrect length.): /ckeditor5/image_upload/
INFO: 172.19.0.1:54724 - "POST /ckeditor5/image_upload/ HTTP/1.1" 403 Forbidden
这肯定是关于csrf令牌的,但它应该由包处理。我看youtube教程和博客的时候,没有人配置csrf token。
这是我的项目的一些信息。
我使用 docker 运行的 cookiecutter-django 启动了该项目。我使用 tailwindcss/flowbite 配置了设置。使用 webpack 的前端管道。
在写这篇文章时,我找到了在详细信息页面上显示youtube链接的答案,我的朋友帮我解决了上传图片的问题。
首先,要在详细信息页面上显示 youtube 链接,您应该在 CKEDITOR_5_CONFIGS 设置中添加以下内容
"extends": {
....
"mediaEmbed": {"previewsInData": "true"},
},
我从github问题
找到了这个答案对于上传问题,基本上,cookiecutter-django 对于安全部分有如下默认设置。
# SECURITY
# ------------------------------------------------------------------------------
# https://docs.djangoproject.com/en/dev/ref/settings/#session-cookie-httponly
SESSION_COOKIE_HTTPONLY = True
# https://docs.djangoproject.com/en/dev/ref/settings/#csrf-cookie-httponly
CSRF_COOKIE_HTTPONLY = True
# https://docs.djangoproject.com/en/dev/ref/settings/#x-frame-options
X_FRAME_OPTIONS = "DENY"
如果我将 CSRF_COOKIE_HTTPONLY 更改为 True,则上传图片成功。
现在这提出了另一个问题。造假可以吗?会不会有严重的安全问题?