发现项目中存在 X-Frame-Options 低危漏洞: XY#.?<"Q8
yd=b!\}WJ
使用 X-Frame-OptionsEDIT E>+>!On)b
X-Frame-Options 有三个值: 6?'7`p
eR0$CTSw
DENY /,`OF/%
表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。 Z?xRSi2~7
SAMEORIGIN l0C`teO
表示该页面可以在相同域名页面的 frame 中展示。 )2_[Ww|.
ALLOW-FROM uri W.NZ%~|+e/
表示该页面可以在指定来源的 frame 中展示。 A;
wT`c
m7DKC,
'qvj[lpGr
换一句话说,如果设置为 DENY,不光在别人的网站 frame 嵌入时会无法加载,在同域名页面中同样会无法加载。 BlQX$s]
4Y$\QZO
另一方面,如果设置为 SAMEORIGIN,那么页面就可以在同域名页面的 frame 中嵌套。 (|F.3~Amq
- Z`RKR8C
Z`u$#<ukX
eIfQ
TV
vaGF(hfTA
;}j(x;l>t
配置 Apache r34MDUZdI
配置 Apache 在所有页面上发送 X-Frame-Options 响应头,需要把下面这行添加到 'site' 的配置中: "X8jpg
[IQ|c?DxpL
Header always append X-Frame-Options SAMEORIGIN 0=#>w_B
]Ob|!L(
4uo`XJuQ
配置 nginx 6oNcj_?7?q
配置 nginx 发送 X-Frame-Options 响应头,把下面这行添加到 'http', 'server' 或者 'location' 的配置中: {VE
h@yn
CMaph
add_header X-Frame-Options SAMEORIGIN; m&Mupl
b1.*cIv}
12KC4,C&1i
配置 IIS /v8Q17O?e
配置 IIS 发送 X-Frame-Options 响应头,添加下面的配置到 Web.config 文件中: a+E&{pV
ir6'
\
复制代码 )rD!4"8/A
<system.webServer> fI613ww]
... 6'r8.~O
~ELMLwn.
<httpProtocol> ]
3"t]U'f
<customHeaders> "6$V1B0KW
<add name="X-Frame-Options" value="SAMEORIGIN" /> hj [77EEz
</customHeaders> u dZOg
</httpProtocol> -3EQRqVg
[1VA`:?W
... {r,Uik-nL
</system.webServer> $J`O-"M
复制代码 Wwq:\C
)/H;5 cn
Gk,Bx1y
配置 TOMCAT LL^KZ-
“点击劫持:X-Frame-Options未配置” 94u{k1d x
ti\
${C3
因为项目使用的是tomcat服务器,我们不可能在每个页面去添加: J D\tt-
'cW^ S7
,fkvvM{mq
Xwm3# o.&)
response.addHeader("x-frame-options","SAMEORIGIN"); hi7_jl6
@I_cwUO
_bFUr
+)Z]<O
CVj^{||eF
因此我们使用过滤器,代码如下: TR"C<&y$j
t un}rdb
dGIdSQ~ _
'%N?r,x
C
HttpServletResponse response = (HttpServletResponse) sResponse; jk AjYR .
response.addHeader("x-frame-options","SAMEORIGIN");