怎样用 frame-ancestors 限制页面被嵌入?
参考答案
点击劫持可能把真实页面嵌入透明或伪装的框架,让用户误点敏感操作。CSP 的 frame-ancestors 指令定义哪些祖先来源可以嵌入当前页面;'none' 禁止嵌入,'self' 允许相同来源。
它与 frame-src 的方向不同:frame-src 控制当前页面能加载哪些框架,frame-ancestors 控制谁能把当前页面作为框架加载。嵌套框架中需要检查所有祖先,而不只是直接父页面。
frame-ancestors 不支持通过 meta 标签设置,也不会回退到 default-src。因此仅设置 default-src 'none' 不能表达禁止其他站点嵌入。应在响应头配置并实测合法嵌入流程;敏感操作仍需服务端鉴权和适当确认。