是否有HTTP标头可以防止页面以IFRAME以外的任何内容呈现

Is there a HTTP Header to prevent a page from being rendered in anything but an IFRAME?

本文关键字:IFRAME 任何内 HTTP 是否      更新时间:2023-09-26

我知道HTTP标头设置可以防止HTML页面在另一个域的页面中的IFRAME内打开,或者在IFRAME中完全拒绝,但是是否有HTTP标头设置可以防止浏览器页面直接呈现(即在地址栏中键入URL),但是在IFRAME中可以。需要在IE/Chrome/FF等中工作。

显然,我可以在页面呈现后通过 JS 代码执行此操作,但我想在之前执行此操作,或者在浏览器中触发某些内容,因此没有代码进入浏览器的调试器。

或者,传入的 HTTP 请求中是否有可以使用的内容?

不,什么都没有。 X-FRAME-OPTIONS 和 CSP Frame-Ancestors无法强制页面已框定

JavaScript 是你的朋友。如果在页面开头包含并运行 JavaScript,则可以在呈现页面的其余部分之前检测它是否已框架化。

或者,您可以在初始页面上设置一个会话变量,用于检查

外部框架,然后重定向,然后检查此页面上的会话变量。这将确保用户从第一页导航到那里,尽管如果他们随后继续在新选项卡或窗口中打开它,会话变量仍将被设置,因此您不能强制他们。此外,如果用户禁用了第三方 cookie,这将不起作用(尽管您可以在查询字符串中传递一个值,然后在服务器端检查该值)。

相关文章: