Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ckeditor 内容安全策略编辑器_Ckeditor_Content Security Policy - Fatal编程技术网

Ckeditor 内容安全策略编辑器

Ckeditor 内容安全策略编辑器,ckeditor,content-security-policy,Ckeditor,Content Security Policy,大家好,谢谢阅读。 我对Ckeditor有一个问题,现在我使用内容安全策略,编辑器不会像图片那样显示按钮 如果我删除这一行 Header always set Content-Security-Policy: "style-src 'self' www.site.com; child-src https://www.youtube.com" 干得好 现在我能做什么,你有主意吗?请帮帮我,非常感谢 通过标题发布CSP始终设置内容安全策略:…不是个好主意 此类CSP头将与任何内

大家好,谢谢阅读。 我对Ckeditor有一个问题,现在我使用内容安全策略,编辑器不会像图片那样显示按钮 如果我删除这一行

Header always set Content-Security-Policy: "style-src 'self' www.site.com; child-src https://www.youtube.com"
干得好 现在我能做什么,你有主意吗?请帮帮我,非常感谢


通过
标题发布CSP始终设置内容安全策略:…
不是个好主意

  • 此类CSP头将与任何内容一起发送:.js、.css、.jpeg和word
    始终
    意味着它不仅将与状态为“200 OK”的页面一起发送,而且还将用于错误/重定向/未修改/等
  • 您没有管理此类标头的灵活性。如果您的网页将发布自己的内容安全策略标题,例如通过PHP
    标题(“内容安全策略:默认src'self';”
    ,则您将有两个粘贴的CSP标题,其后果不可预测
  • 在您的情况下-您不需要在“管理”面板中发布CSP标头(您使用的是Ckeditor)。但由于上面第2段的原因,您的CSP标头无处不在,无法将其关闭

    最好在CMS中使用一些插件进行CSP头管理。这些插件足够智能,不会在管理面板中发布CSP,也不会用于错误/重定向页面。
    如果您不使用CMS,您可以发布CSP,例如通过适当index.PHP中的PHP函数(因为您使用的是AhacheWeb服务器)

    PS:如果您在站点中使用了CKeditor(在管理中不使用)-您需要扩展您的CSP规则以允许使用CKeditor脚本和样式

    更新
    根据评论判断,网站管理员在CKEditor的CSP方面遇到了困难,但没有人说是哪一个版本:4还是5

  • 如果从
    cdn.ckeditor.com
    cdn:
  • connectsrchttps://pdf-converter.cke-cs.com;

    形成动作“自我”;

    img src cdn.ckeditor.com;

    脚本src'unsafe inline'cdn.ckeditor.com;

    style src'unsafe inline'cdn.ckeditor.com;

    *
    SKE-4与
    'nonce-value'
    不兼容,并且需要强制
    'unsafe-inline'
    ,因为内联脚本太多

  • 如果从
    cdn.ckeditor.com
    cdn:
  • connectsrchttps://docx-converter.cke-cs.com https://pdf-converter.cke-cs.com;

    形成动作“自我”;

    脚本src“不安全内联”https://cdn.ckeditor.com/ckeditor5/;

    样式src“不安全内联”;

    *
    SKE-5脚本与
    'nonce-value'
    兼容,因此您可以在
    脚本src
    中摆脱
    'unsafe-inline'

  • 内容安全策略(如果从放置站点的服务器加载):
  • connectsrchttps://docx-converter.cke-cs.com https://pdf-converter.cke-cs.com;

    形成动作“自我”;

    脚本src“self”“unsafe inline”;

    样式src“不安全内联”;


    PS:connect src的
    https://docx-converter.cke-cs.com https://pdf-converter.cke-cs.com;
    仅在“导出到PDF”和“导出到Word”时是必需的按钮被使用。

    我在我的项目中使用了一个简单的解决方案,在白名单编辑器的几次失败试验后,它排除了将使用富文本编辑器的CSP URL前缀


    在我的例子中,它是产品管理页面。

    如果使用nonce,我确实喜欢这样

        (function(cke) {
    
            var _owrite = cke.dom.document.prototype.write;
            cke.dom.document.prototype.write = function(src) {
                src = src.replace(/<script/gmi, '<script nonce="' + nonceValue + '"');
                _owrite.apply(this, [src]);
            };
    
        })(CKEDITOR);
    
    (功能(cke){
    var_owrite=cke.dom.document.prototype.write;
    cke.dom.document.prototype.write=函数(src){
    
    src=src.replace(/@Yousef Alm,没有什么比Ckeditor的CSP更简单的了,我甚至无法想象你在那里遇到了什么困难。我已经更新了我的答案并添加了Ckeditor的CSP。欢迎!