搜索
查看: 14649|回复: 0

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

[复制链接]
发表于 2020-11-16 17:30:36 | 显示全部楼层 |阅读模式
前面说了如何阻止 iframe里引用的网页自动跳转,已达到iframe页面的目的。4 |* e7 t, Z6 ^7 U8 p
这次讲一下如何防止自己的网页被别人iframe。
) a2 W* ~5 G, \/ j0 d) K9 {
6 K6 x# b4 T8 |& o, n1、这些方法都可行,但不是太可靠。
3 c% R- o5 N6 }  X% u
  1. <script language="javascript">1 v% b) i& _: R8 v
  2. if( top.location != self.location) top.location.href=self.location.href;) q9 ^( \( s* B3 k! ]; R3 ~
  3. </script>
复制代码

6 [3 m: f* `4 M  D' a( |
  1. <script language="javascript">
    6 ?- G, Q5 F/ `6 y% g. f6 {$ q
  2. if (top.location != location) top.location.href = location.href;
    5 p( I3 |! N7 u, l; N
  3. </script>
复制代码
2 m2 i. {6 O- b, \$ I. S3 ~) ~
  1. <script language="javascript">
    3 j7 h/ n6 G" {8 q
  2. if (top.location != self.location) {top.location=self.location;}, c1 H" e8 {1 U1 Q0 s3 n/ b0 k
  3. </script>
复制代码
* x& X- ?, U0 f; a1 r
  1. <script language="javascript">/ `' ~: T! v  `$ V; q+ U
  2. if (top.frames.length!=0) top.location=self.document.location;/ X' B- i, k7 O& }+ H$ G7 x2 l! `- I
  3. </script>
复制代码
不可靠的原因:
6 ^$ D" K( _, |# b& a& w/ g; v' ~3 l当别人用如下类似代码做IFRAME嵌套调用时,就可能躲过你的页面的javascript代码。
4 K7 Q) ]9 O% N* y
  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>( r+ W$ {+ z) u6 |$ e
  2. <script language="javascript"> ! A8 M! W( p* C& A, T5 |, K4 x4 L
  3. var location="";! _+ {% p0 a% l1 @/ Z/ O
  4. var navigate="";
    ( j& n4 l; g1 K4 G' T2 Y
  5. frames[0].location.href="";
    * |+ F! K- G" q8 r& K
  6. </script>
复制代码

) s) h! U7 Y! m, ~- E2 a3 c4 i
  1. <iframe src="http://xp6.org/" class="t-iframe" scrolling="no" security="restricted" sandbox="">
复制代码

3 T: t5 d1 }+ A  e; N% i% h
! D6 P3 Q& ~. }5 Q5 m+ H2 g) Q
  1. <script type="text/javascript" charset="utf-8">" E2 C5 j( K9 a% A4 T3 r  h" E) E
  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>');8 b  l& g3 a: l
  3. </script>
复制代码
2、代码层次的屏蔽,方法可行,但不是很人性化。
0 |( q- H9 _( z/ {6 NMeta标签方法# g# }6 L7 Y; B3 \/ R
  1. <meta http-equiv="X-FRAME-OPTIONS" content="DENY">
复制代码
PHP方法- S: @; U( K$ x: Z
  1. <?php header('X-Frame-Options:Deny'); ?>
复制代码
Apache主机方法  s' r2 w: a- l% G, l) Y
  1. Header always append X-Frame-Options SAMEORIGIN
复制代码
Nginx主机方法5 q2 \; f: m; K* `
  1. add_header X-Frame-Options "SAMEORIGIN";
复制代码

+ F8 G3 z& D& B- b. s! I+ X3 o.htaccess方法
1 ?9 }5 T0 x7 a5 G( f' H在网站根目录下的.htaccess文件中中加一句
' i+ M8 c, e8 t  T
  1. Header append X-FRAME-OPTIONS "SAMEORIGIN"
复制代码
+ q. z  D7 @( W! ?) `
IIS方法1 s+ E+ ^' s0 _: d! N" `: y, e
在web.config文件中加
  1. <system.webServer>
    1 X0 H( l% y0 N* s" N% p
  2.   ...
    # f# H. l2 v& |9 b. e) H7 j
  3.   <httpProtocol>
    * M/ \# d( C% Z9 q- T! m
  4.     <customHeaders>5 f) s5 ]5 i5 e; H: p; f$ n+ i0 H) H
  5.       <add name="X-Frame-Options" value="SAMEORIGIN" />      ; i: K& l. H, d/ R7 ~- O
  6.     </customHeaders>    + x8 B' T2 d& J6 L0 I/ {
  7.   </httpProtocol>  
    + \5 u8 {! n" @: O0 a2 w1 s
  8.   ...& m3 S( S9 D2 {9 ]  g
  9. </system.webServer>
复制代码
/ t5 U- \8 J- q9 W$ f/ d
之所以说不人性化,是因为这样操作之后,别人iframe会显示服务器拒绝之类的信息,虽然是屏蔽了,但是自己网站也不能宣传了。- u9 e# W% R( D" F, O
* {% j* z9 L. ~5 E) h
3、推荐解决方法。8 `+ {: B% U+ \2 G
  1. <script language="javascript">  ) q& P: Z$ p0 D3 f/ D0 a& L
  2. if(top != self){
    8 @0 V  Q+ z- H: _7 _! e) l
  3.     location.href = "http://xp6.org/iframe.html";  ; Q( f: ?* |& I4 c9 z, Q
  4.     top.location.href=self.location.href;% m/ ]) d- _/ Z1 @6 @( A5 A# l& T
  5. }  
    5 H9 [1 H! v7 d; ]4 d" n% Q
  6. </script>
复制代码

8 o; @" a- Y$ a  l8 U( E将上面的代码复制到需要屏蔽页面<head>里面加载。  o( t4 y: d* g; [8 n
制作一个iframe.html页面里面放张网站宣传图片,加个链接,放到网站根目录。: O7 c/ f1 k# P: n' ~; U
原理:
7 T. u# ^$ x' R0 H& x: p( V' u' y, _7 Q第一步直接强制访问咱自己设定的iframe.html页面,如果网站禁用了JS跳转,那么执行到这一步就结束了,这样即使他们iframe了咱的网站,看到的只是咱的图片宣传页。
# [4 Z! D, o5 T. _第二步,如果没有禁用JS,那么会接着执行top.location.href=self.location.href; ,然后跳转到我们的网址页面。
# g; T* J  u" F' M/ L目前测试这种方法没什么问题。
3 ^( D% y  }. l# n% V0 P# g
. `! V9 F0 ~/ J' v
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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