发现项目中存在 X-Frame-Options 低危漏洞: R*D0A@
MkG3TODfHB
使用 X-Frame-OptionsEDIT r(IQ)\GR
X-Frame-Options 有三个值: A7|!&fi
vcnUb$%
DENY (7G5y7wI"
表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。 W~J@v@..4
SAMEORIGIN C#`VVtei
表示该页面可以在相同域名页面的 frame 中展示。 6u`E{$
ALLOW-FROM uri r<38; a
表示该页面可以在指定来源的 frame 中展示。 .V9/0
q[#2`
;H5PiSq;z
换一句话说,如果设置为 DENY,不光在别人的网站 frame 嵌入时会无法加载,在同域名页面中同样会无法加载。 lV/-jkR
h[M~cZ{
另一方面,如果设置为 SAMEORIGIN,那么页面就可以在同域名页面的 frame 中嵌套。 RfVVAaI
$bRakF1'S
o;+$AU1f
gz-X4A"
6\ g-KO
SnsOuC5Ah
配置 Apache S3rN]!B+
配置 Apache 在所有页面上发送 X-Frame-Options 响应头,需要把下面这行添加到 'site' 的配置中: @0cQ4}
5(0f"zY
Header always append X-Frame-Options SAMEORIGIN $Cw>
z^}u
al<[iZ
BFP (2j
配置 nginx MYgh^%w:
配置 nginx 发送 X-Frame-Options 响应头,把下面这行添加到 'http', 'server' 或者 'location' 的配置中: eYd6~T[9
$xRZU9+
add_header X-Frame-Options SAMEORIGIN; 0F$;]zg
#-b0U[,.
i;4|UeUl
配置 IIS 7?Vo([8
配置 IIS 发送 X-Frame-Options 响应头,添加下面的配置到 Web.config 文件中: H'N$Vv2q
Hgs=qH
复制代码 qI-q%]l
<system.webServer> 5fpBzn$
... %YjZF[P
"YLH]9"=
<httpProtocol> r,^}/<*
<customHeaders> &^WJ:BvA|^
<add name="X-Frame-Options" value="SAMEORIGIN" /> -oGJPl {r
</customHeaders> UO%VuC5B
</httpProtocol> {4u8~whLp
{)^P_zha[9
... f@@2@#
5B
</system.webServer> n7UZ&ab
复制代码 xgl~4
Zkn$D:
$,+'|_0yM
配置 TOMCAT 5 fGUJ[F=
“点击劫持:X-Frame-Options未配置” Mp;yvatO
N_jCx*.G
因为项目使用的是tomcat服务器,我们不可能在每个页面去添加: k&\YfE3*
"z+Z8l1.
!X 3/2KRP7
F +e
J9
response.addHeader("x-frame-options","SAMEORIGIN"); xJ"CAg|B
=m@5$
s^_E'j$
@Yua%n6]#D
q?C)5(
因此我们使用过滤器,代码如下: s)]Z*#ZZ
<@CBc:j0
Qi^MfHW
6p/gvpZ
HttpServletResponse response = (HttpServletResponse) sResponse; \K 01F
response.addHeader("x-frame-options","SAMEORIGIN");