我很难将X-Frame-Options
头添加到一个简单的HTML中。
有没有办法用JavaScript来做这件事?
发布于 2017-08-08 10:48:30
X帧选项头是在服务器端,而不是客户端添加的.这是因为标题用于控制浏览器应如何呈现页面。
任何承载您的文件的服务器都必须添加此标头。
发布于 2017-08-08 10:48:55
X-Frame-Options
是header。因此,它不是HTML的一部分,不能在HTML文档中设置。
它仅是HTTP头的原因之一是,客户端应该能够在解析HTML代码之前决定是否允许将文档嵌入到框架中。
因此,您不能通过编辑文件来实现这一点,但是您需要修改服务器的HTTP响应。通常,这是在web服务器软件或服务器端语言提供的设置中完成的。
例如,Apache中的设置可能如下所示:
Header always append X-Frame-Options DENY
或者,在PHP中,您可以这样设置标题:
<?php header('X-Frame-Options: DENY'); ?>
请注意,还有一个更现代的CSP等效frame-ancestors
。但是,虽然某些CSP策略可以设置为<meta>
标记,但在这里是不可能的。这样做是行不通的:
<head>
<!-- This does *not* work! -->
<meta http-equiv="Content-Security-Policy" content="frame-ancestors 'none'">
</head>
还请看一下点击劫持防御备忘单,以了解除了设置XFO头之外的点击攻击防御措施。
发布于 2019-01-14 09:07:03
由于您在注释中提到IIS是您的web服务器,所以有一种方法可以在web服务器本身上设置它。
其他几个答案提到将它添加到web.config中,如果这是一个ASP.NET应用程序,这是一个很好的选择,但是对于从IIS提供的任何web应用程序,不管技术如何,还有另一种方法可以工作。
如果打开Internet Information Services (IIS) Manager
,并在导航窗格中的Sites
下展开节点并突出显示站点,则在“功能视图”窗格中的“IIS
功能”组下,有一个名为HTTP Response Headers
的功能。如果打开此节点,则在右侧的Actions
窗格中,将看到添加标头的操作。只要添加带有X-Frame-Options
名称的标头和任何您想要的值,它就会被IIS添加到从该站点提供的每个响应中。
https://security.stackexchange.com/questions/167081
复制相似问题