根据office uri方案配置内容安全策略

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

我正在尝试为 Java Web 应用程序配置内容安全策略。

我目前正在重写 Webapplication 的 init 方法,如下所示:

最终 CSPHeaderConfiguration cspHeaderConfiguration = getCspSettings().blocking().unsafeInline();

我知道这不是最好的选择,但是,当我修改现有应用程序时,我只想集成一个不太安全的策略,然后随着时间的推移进行升级,因为更严格的选项会导致其他问题。

这工作得很好,生成的 CSP 标头如下所示:

内容安全策略:默认 src '无'; script-src 'self' '不安全内联' '不安全评估'; style-src 'self' '不安全内联'; img-src '自我';连接-src'自我';字体-src'自我';清单 src '自我'; child-src '自我';基本 uri '自我';框架-src'自我'

这工作正常,除非我尝试使用 microsoft Office uri 方案打开文件。更具体地说,我使用带有 webdav 的 iframe 打开一个 Word 文档。

我像这样设置 iframe 的 url:

$('body').append('<iframe class="open-direct-link-iframe" style="display:none"></iframe>');
$iframe = $('.open-direct-link-iframe');
iframe.attr('src',ms-word:ofe|u|https://localhost:8443/app/api/webdav/Asset/A3A2523A7FB23E650D1FD89BD5246F10-184/5/Word-document.docx'

如果没有 csp,这也可以正常工作。但是,我收到以下错误消息:

Content-Security-Policy:页面的设置阻止加载 ms-word:ofe|u|https://localhost:8443/app/api/webdav/Asset/A3A2523A7FB23E650D1FD89BD5246F10-184/5/Microsoft Word- 处的资源document.docx(“frame-src”)。

我不知道如何正确配置 csp。如果我对 iframe 使用正常的 url,例如 https://localhost:8443/app/home,则效果很好,所以我确信问题出在 word:ofe|u|

java uri wicket content-security-policy webdav
1个回答
0
投票

我得到的解决方案是这样的:

cspHeaderConfiguration.add(CSPDirective.FRAME_SRC, (settings, cycle) -> "ms-word:");

我不知道这在安全性方面有多正确,但它至少允许使用 unsafeinline 激活 CSP,这比没有好。

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