框架的内容安全策略。frame-src和frame-祖先

Nis*_*wal 4 http-headers

frame-src和frame-ancestors到底做什么?定义表明目的是为两个指令定义框架的有效内容。什么时候使用哪个。我能够使用-在iframe中加载外部域内容

  1. 帧祖先和default-src规则
  2. 帧源

两者都可以,但是无法获得正确的用例。

emr*_*sel 6

default-srcframe-ancestorsframe-src都是Content-Security-Policy响应标头的一部分

帧源

限制页面可以在iframe中加载的域。

HTTP内容安全-策略(CSP)帧-src的指令指定有效用于嵌套浏览上下文加载使用元素如源<frame><iframe>

例如:如果位于的网站https://example.com的响应标头为Content-Security-Policy: frame-src 'self',则只能https://example.com在iframe中加载。

框架祖先

限制可以从iframe加载页面的域(类似于X-Frame-Options标头,但优先于标头)。

HTTP内容安全-政策(CSP)帧的祖先指令指定有效的家长可以使用嵌入网页<frame><iframe><object><embed>,或<applet>

例如:如果该网站https://example.com的响应标头为Content-Security-Policy: frame-ancestors 'self',则只能从将其加载到iframe中https://example.com

default-src

用作未明确设置的任何fetch指令的默认值(这是所有fetch指令的列表

HTTP内容安全性策略(CSP)default-src指令用作其他CSP提取指令的后备。对于以下缺少的每个伪指令,用户代理将查找default-src伪指令并将其使用此值。

例如: Content-Security-Policy: default-src 'self'将默认'self'为所有提取指令的值。其他指令将不受影响。

注意:由于frame-ancestors不是fetch指令,所以设置default-src不会限制它。需要单独设置。

  • 当主页面和子页面的策略冲突时会发生什么? (2认同)
  • 最严格的政策将优先。因此,如果父级的“frame-src”为“none”并尝试加载没有内容安全策略的 iframe,则支持此指令的浏览器将不允许加载该 iframe。同样,如果父级允许在 iframe 中加载任何域,但它尝试加载 iframe 中“frame-ancestors”为“none”的网站,则浏览器将阻止其嵌入 iframe 中。 (2认同)
  • 值得明确的是,default-src 仅默认 fetch 指令的值。上面答案的引用文本中提到了这一点,但恕我直言并不清楚。请参阅最新的 CSP 规范以获取获取指令的完整列表,在撰写本文时,它们是:child-src、connect-src、default-src、font-src、frame-src、img-src、manifest-src、media- src、预取-src、对象-src、脚本-src、脚本-src-elem、脚本-src-attr、样式-src、样式-src-elem、样式-src-attr、工作者-src (2认同)