首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在哪里指定内容安全策略(CSP):在后端还是前端?

在哪里指定内容安全策略(CSP):在后端还是前端?
EN

Stack Overflow用户
提问于 2021-09-17 15:50:06
回答 1查看 1.4K关注 0票数 2

据我所知,有两种方法可以指定内容安全策略:

  • 在服务器端通过报头:
代码语言:javascript
复制
res.setHeader("content security-policy", "default-src: 'none';")
  • 在HTML页面中,通过meta-tag:
代码语言:javascript
复制
<meta content = "default-src 'none';" http-equiv = "Content-Security-Policy" />

我的问题:

  1. 这两种技术有什么区别?
  2. 只使用其中一种就够了吗?
  3. 我应该用哪一种?后端,前端,还是两者兼而有之?

感谢内容安全策略(CSP)是如何工作的?,我知道什么是CSP,它是如何工作的。然而,我想知道的是,在哪里设置CSP更好。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-17 18:32:15

通过header传递CSP是一个优选方式

元标记具有相同的功能,但出于技术原因,它不支持某些指令:frame-ancestorsreport-urireport-tosandbox。而且,元标记中不支持Content-Security-Policy-Report-Only

在SPA (单页应用程序)中,传统上使用元标记来传递CSP,因为很多主机现在都允许管理HTTP报头。

当SSR (服务器端呈现)时,HTTP报头被更频繁地使用。

您可以使用任何技术上方便的CSP传递方法(请记住元标记的局限性),但不能同时使用这两种方法。这两种政策都是一个接一个地执行的,所以如果有分歧的话,更严格的政策实际上是适用的。

请注意:

  • CSP标记应该放在<head>中,否则将无法工作。
  • 使用javascript更改meta标记将导致旧的和新的策略都生效。
  • 对于非HTML文件的CSP,在技术上不能使用meta标记。
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69226253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档