.htaccess或带有元标记的内容安全策略?[复制]

Content Security Policy in .htaccess or with meta tag? [duplicate]

提问人:Marcel 提问时间:11/14/2023 最后编辑:TylerHMarcel 更新时间:11/15/2023 访问量:38

问:

上下文

我有一个 VueJs 单页应用程序(实际上只有一个 HTML 文件),我想应用内容安全策略 (CSP)。它托管在一个子域上,由共享主机提供,我可以在那里创建文件。.htaccess

据我了解,我有两个选择:

  • 将CSP指令放在HTTP标头中,例如使用apache服务器的文件(例如,在此答案中.htaccess)
  • 添加 CSP via (例如在此示例中meta http-equiv)

看来,我也可以将两者混合在一起。

问题

但是,HTTP 标头 (using.htaccess) 和 meta http-equiv 之间在以下方面是否有区别

  • 安全性(可以允许脚本,例如进一步操作 HTML 标头)
  • 浏览器兼容性
  • 其他影响
.htaccess 内容安全策略 http-equiv

评论

1赞 arkascha 11/14/2023
第一个选项不是“.htaccess”选项。它使用 apache headers 模块将 http 标头添加到响应中。在 http 服务器的配置中、脚本级别或分布式配置文件中实现它的位置是完全无关紧要的。
0赞 Marcel 11/14/2023
感谢@arkascha的提示,我更新了这方面的问题。实际上,重点不在于正在使用的服务器,而在于它位于 HTTP 标头中。我希望我的更新能反映出这一点。
0赞 Marcel 11/15/2023
是的,实际上这是我在下面的回答中已经提到的那个。

答:

0赞 Marcel 11/15/2023 #1

根据 @sideshowbarker 的回答,规范要求浏览器忽略元标记中的一些 CSP 指令,即:

  • 仅内容安全策略报告
  • 报告-URI
  • 帧祖先
  • 沙盒

此外,HTML 标记中的指令仅适用于标记后面的 content/links/includes。meta http-equiv

但是,根据上述规范,一旦处理了标记,就无法进行操作:

修改 meta 元素的 content 属性后 元素已被解析将被忽略。

结论

最后,如果可能的话,坚持使用 HTTP 标头似乎是最安全的