在不同环境下添加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

我要评论!

想一个你喜欢的昵称。
给一个你的常用邮箱。
想和萌萌哒的TA们说点啥。
  • 其实这个问题的成因是比较简单的,主要是由于id_rsa相关的文件权限不对,可能的场景是从其它地方拷贝了此文件到.ssh目录下,但又没有纠正权限导致。 怎么解决?授予合理的权限即可。 chmod 755 ~/.ssh/ chmod 600 ~/.ssh/id_rsa ~/.ssh/id_rsa.pub...
  • 思源系列包含 思源黑体、思源宋体、思源柔黑体。 思源黑体(英语:Source Han Sans)是Adobe与Google所领导开发的开源字体家族,1.001及更早版本以Apache 2.0许可证授权,而1.002及更新版本则使用SIL开源字体授权,属于无衬线黑体。思源黑体于2014年7月16日首次...
  • 2018年 10 月,香港国泰航空披露包含 940 万乘客资料的信息系统被未经授权获取。未获授权获取的资料包括了个人身份信息和飞行记录,此外还有部分信用卡。 香港个人数据隐私专员上周公布了调查报告,称国泰航空的网络先后遭遇了两次入侵。 第一次入侵发生在 2014 年 10 月,攻击者在系统中植入了按...
  • Nginx安装后默认直接显示自身的版本号,出于安全或隐私的考虑,可能需要隐藏Nginx的版本信息。隐藏Nginx的版本信息非常简单,只需要适当修改几个文件即可实现,且不会对正在运行中的程序造成影响。 1、修改nginx.conf配置,在HTTP段里增加“server_tokens off;”字段; ...
  • 在Mac下就会发现之前windows下用的很开心的sublime text 3显示内容时出现了乱码,这可怎么办? 其实我们到github上搜索下就晓得了,安装下列两个插件就能搞定啦: 1、ConvertToUTF8:https://github.com/seanliang/ConvertToUTF8...
微信扫一扫即可带走我!