搜索
查看: 9961|回复: 0

[网站] 如何防止自己的网页被别人iframe嵌入

[复制链接]
发表于 2020-11-16 17:30:36 | 显示全部楼层 |阅读模式
前面说了如何阻止 iframe里引用的网页自动跳转,已达到iframe页面的目的。6 y, ]/ J' ]% s7 z+ S, `
这次讲一下如何防止自己的网页被别人iframe。
6 t: X6 u. t; S5 x4 `9 m: `: h% y
5 d- E5 d9 g# b5 q4 W" X1、这些方法都可行,但不是太可靠。
, Z& l) H$ G, @+ l  F
  1. <script language="javascript">, G2 \8 L+ [5 |9 E2 t
  2. if( top.location != self.location) top.location.href=self.location.href;+ o% ]: c& _6 V( f* u
  3. </script>
复制代码
8 s, j9 t/ a1 d1 m9 _3 |- M9 T
  1. <script language="javascript">8 V( ]' B; g/ p* r3 R" `
  2. if (top.location != location) top.location.href = location.href;0 N$ B, p0 a+ o1 s0 h; m8 H
  3. </script>
复制代码

  C: _: m7 H1 _  b0 Z$ G1 G5 d
  1. <script language="javascript">  D3 A8 d6 C8 q, z! [% C1 L
  2. if (top.location != self.location) {top.location=self.location;}
    ! W% s/ K2 ~. P9 T& K! g6 s) j& x
  3. </script>
复制代码
$ O4 L. |+ P0 j7 G/ }8 @3 j
  1. <script language="javascript">
    4 E6 n% ?/ e2 t, d( [" c
  2. if (top.frames.length!=0) top.location=self.document.location;8 |) N9 T$ N4 [+ I) h: C: `- D
  3. </script>
复制代码
不可靠的原因:
# g/ w; K' x. R3 e当别人用如下类似代码做IFRAME嵌套调用时,就可能躲过你的页面的javascript代码。. |2 S$ J. L" j; ]  C( R* l
  1. <iframe src="http://xp6.org/" name="tv" marginwidth="0" marginheight="0" scrolling="No" noResize frameborder="0" id="tv"  framespacing="0" width="580" height="550" VSPACE=-145 HSPACE=-385></iframe>- K% n3 K: X1 [9 ~
  2. <script language="javascript"> , ]' [  r% m6 E: T
  3. var location="";( h3 r6 u/ x) e9 A! r% g, I
  4. var navigate="";
    ! P; y% B- T3 q1 L( }/ @$ d5 n: r
  5. frames[0].location.href="";( g8 t, v5 s5 @/ j( s2 x. I
  6. </script>
复制代码
: N8 t* r# V2 O, U
  1. <iframe src="http://xp6.org/" class="t-iframe" scrolling="no" security="restricted" sandbox="">
复制代码

, N( x, C' G2 K/ I2 m. r* W9 p  I6 X3 ^  I: Q" f, }4 s
  1. <script type="text/javascript" charset="utf-8">
    ) `, M# z% ?9 S) T( y
  2. document.write('<iframe seamless sandbox security="restricted" id="url_mainframe" frameborder="0" scrolling="yes" name="main" src="http://xp6.org/" style="height:100%; visibility: inherit; width: 100%; z-index: 1;overflow: visible;"></iframe>');
    , |6 l: X# w( N$ q
  3. </script>
复制代码
2、代码层次的屏蔽,方法可行,但不是很人性化。
$ @  S% x+ s6 L, t  ^( _Meta标签方法6 o6 D0 y1 O# [: ^$ y( Y% R* x& @
  1. <meta http-equiv="X-FRAME-OPTIONS" content="DENY">
复制代码
PHP方法. M1 l. ?  n& z! \
  1. <?php header('X-Frame-Options:Deny'); ?>
复制代码
Apache主机方法
% r: {# a" m/ D
  1. Header always append X-Frame-Options SAMEORIGIN
复制代码
Nginx主机方法" d# ~% D! G+ u( E+ v7 P
  1. add_header X-Frame-Options "SAMEORIGIN";
复制代码
) t* R) o& S) m6 O
.htaccess方法
' j$ `; C7 |6 P  l# P在网站根目录下的.htaccess文件中中加一句
$ Q3 u% B9 f  {
  1. Header append X-FRAME-OPTIONS "SAMEORIGIN"
复制代码

- U8 A, S9 U! Q5 E% l2 YIIS方法+ Y* Y" N. m  l- B( z! c( j
在web.config文件中加
  1. <system.webServer>5 K9 H2 R) o' X8 s+ M  X$ E3 s% M- F
  2.   ...' b- Q1 e- E. D2 t# m
  3.   <httpProtocol>& r* T8 W4 @/ L  F
  4.     <customHeaders>
    6 }3 J  W& Q' O- G
  5.       <add name="X-Frame-Options" value="SAMEORIGIN" />      * K, l8 B& b1 Z8 l, F3 \) h% L* b4 c
  6.     </customHeaders>    8 @4 m2 j5 A, c, K! z0 ?, s
  7.   </httpProtocol>  
    0 t; u( V( ]) H8 D! L, C
  8.   ...
    . m5 R& o6 H1 T: _) i: K0 b
  9. </system.webServer>
复制代码

0 c- J1 ^3 z! ~. y* {% ?0 A之所以说不人性化,是因为这样操作之后,别人iframe会显示服务器拒绝之类的信息,虽然是屏蔽了,但是自己网站也不能宣传了。
( T) e9 [+ }8 U5 U* C% w2 m1 M
0 x  }4 e  u* M. l3、推荐解决方法。) R# k' q- L& f0 x$ Y+ |# H
  1. <script language="javascript">  # C" H& i: B! ^' I* ]
  2. if(top != self){
    ) k! x+ Q  ?, @( \5 u4 t) @4 F
  3.     location.href = "http://xp6.org/iframe.html";    R9 ~1 S& e$ K: M( D3 d! C1 h
  4.     top.location.href=self.location.href;
    5 A& C$ |& r. R- v) N& `7 ^7 L# F
  5. }  
    4 J' V9 D5 ~- @7 w! r! t
  6. </script>
复制代码
7 K- s1 r# j- K3 d
将上面的代码复制到需要屏蔽页面<head>里面加载。
% l& c- I" B. ~* e; `制作一个iframe.html页面里面放张网站宣传图片,加个链接,放到网站根目录。5 G" X  w0 c* C: x$ F
原理:$ E  }9 D5 ^$ ]/ z
第一步直接强制访问咱自己设定的iframe.html页面,如果网站禁用了JS跳转,那么执行到这一步就结束了,这样即使他们iframe了咱的网站,看到的只是咱的图片宣传页。" r/ t8 J! K8 z
第二步,如果没有禁用JS,那么会接着执行top.location.href=self.location.href; ,然后跳转到我们的网址页面。
+ U& q6 A5 }* V/ t$ ~1 K# h目前测试这种方法没什么问题。
2 t5 U3 p# F4 ^! p% Q% O1 G3 C, F+ j& ^3 |3 k
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

热议作品
精华帖子排行
精彩推荐

虾皮社区,成立十年了!

站长自己也搞不懂想做个什么,反正就是一直在努力的做!

Copyright © 2007-2019 xp6.org Powered by Discuz

QQ|Archiver|手机版|小黑屋|虾皮社区 鲁公网安备 37021102000261号 |网站地图
返回顶部 返回列表