发现项目中存在 X-Frame-Options 低危漏洞: 22r$Ri_>
z 3N'Xk
使用 X-Frame-OptionsEDIT jC_m0Iwc
X-Frame-Options 有三个值: 3jDAj!_ea
40Hm+Ge
DENY >
,;<Bz|X
表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。 se&Q\!&M
SAMEORIGIN ^F:Bj&0v[
表示该页面可以在相同域名页面的 frame 中展示。 yNOoAnGT W
ALLOW-FROM uri Qkb=KS%z
表示该页面可以在指定来源的 frame 中展示。 i:\|G^h
NNw0
G&
y87oW_"h
换一句话说,如果设置为 DENY,不光在别人的网站 frame 嵌入时会无法加载,在同域名页面中同样会无法加载。 ^vha4<'-qG
2./;i>H[u
另一方面,如果设置为 SAMEORIGIN,那么页面就可以在同域名页面的 frame 中嵌套。 ciGJtD&P
*=zv:!
'T(@5%Db
w:07_`cH=
S<eB&qT$
cUC!'+L
配置 Apache FA!!S`{\
配置 Apache 在所有页面上发送 X-Frame-Options 响应头,需要把下面这行添加到 'site' 的配置中: p> g[: ~
`T3B
Header always append X-Frame-Options SAMEORIGIN bW^C30m
b)@rp
3<HZ)w^B
配置 nginx Go(Td++HS
配置 nginx 发送 X-Frame-Options 响应头,把下面这行添加到 'http', 'server' 或者 'location' 的配置中: z]R%'LGu
8]Q#P
add_header X-Frame-Options SAMEORIGIN; 1$H<Kjsm
vUhgM'
**JBZ \'
配置 IIS BhhFij4
配置 IIS 发送 X-Frame-Options 响应头,添加下面的配置到 Web.config 文件中: :l&Yq!5
\,pObWm
复制代码 Ub/ZzAwq
<system.webServer> aK/fZ$Qc
... N(V_P[]"*,
$O%"[w
<httpProtocol> O]'2<;
<customHeaders> ~r~YR=
<add name="X-Frame-Options" value="SAMEORIGIN" /> ~d\^ynQ
</customHeaders> B<i(Y1n[
</httpProtocol> d0-4KN2
uehu\umt=
... 3?&v:H
</system.webServer> 6%}`!_N<Mc
复制代码 "=1gA~T
<p}7T]a7
3dlY_z=0
配置 TOMCAT ,H%[R+)
“点击劫持:X-Frame-Options未配置” }0tHzw=#%e
*CPp U|
因为项目使用的是tomcat服务器,我们不可能在每个页面去添加: 6Ia HaV+P
a"Xh
1DcX$b
ZuybjV1/f6
response.addHeader("x-frame-options","SAMEORIGIN"); TY'c'u,
i1XRBC9
TA0(U$ 4
:"MHmm=uU8
R?{xs
因此我们使用过滤器,代码如下: WG3!M/4r H
3]GMQA{L)
NLK1IH#
B}[f]8jrM
HttpServletResponse response = (HttpServletResponse) sResponse; /'aqQ
K<
response.addHeader("x-frame-options","SAMEORIGIN");