django-ckeditor-5 无法在本地上传文件并且不显示 youtube 链接的预览

问题描述 投票:0回答:1

我使用 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 的前端管道。

django ckeditor ckeditor5 cookiecutter-django django-ckeditor
1个回答
0
投票

在写这篇文章时,我找到了在详细信息页面上显示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,则上传图片成功。

现在这提出了另一个问题。造假可以吗?会不会有严重的安全问题?

© www.soinside.com 2019 - 2024. All rights reserved.