搜索
查看: 14609|回复: 0

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

[复制链接]
发表于 2020-11-16 17:30:36 | 显示全部楼层 |阅读模式
前面说了如何阻止 iframe里引用的网页自动跳转,已达到iframe页面的目的。! b# N6 U4 {* i3 ~
这次讲一下如何防止自己的网页被别人iframe。1 ?" L+ I- m' _- r& j8 ~& _

- s0 L2 J$ `- \" @& d) Q' j) m; ^' |1、这些方法都可行,但不是太可靠。
0 M, o; V( Y. o, D% V; Y; G
  1. <script language="javascript">
    / S0 S5 N0 Z! v  k# w4 m! z" r4 f
  2. if( top.location != self.location) top.location.href=self.location.href;  N4 ~- A  L" |" b) m' M8 L
  3. </script>
复制代码

# T5 f, Q) W8 @
  1. <script language="javascript">0 I. r' r# R& U$ U4 B/ Q- L( @
  2. if (top.location != location) top.location.href = location.href;
      R; \; P. R1 h: X
  3. </script>
复制代码
$ x- S* g2 I* n$ f6 U
  1. <script language="javascript">
    2 @7 ]$ K0 Z% _1 w+ z  _: h
  2. if (top.location != self.location) {top.location=self.location;}% y8 z$ b# x& ?6 z$ b
  3. </script>
复制代码

# l. I$ U' T- `2 [. B4 W% ]) f
  1. <script language="javascript">3 A/ w' }) w' J/ e; _: w8 p" b
  2. if (top.frames.length!=0) top.location=self.document.location;
    ( r; Y& U( i& j7 q- u
  3. </script>
复制代码
不可靠的原因:
! D5 _4 R- u$ I2 n& a6 c当别人用如下类似代码做IFRAME嵌套调用时,就可能躲过你的页面的javascript代码。
. \2 }( z8 X  V
  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>
      Y1 J" x! j) I$ p! C3 p
  2. <script language="javascript"> ' b' \2 s0 j8 j9 }
  3. var location="";; t5 h' B' N2 d2 u
  4. var navigate="";6 ?& o: m4 ]0 k$ b( E0 h  ]7 Z! j
  5. frames[0].location.href="";
    4 y' ]8 o  w' _# \
  6. </script>
复制代码

% E. V( y, W' Q) G3 Q% v1 W
  1. <iframe src="http://xp6.org/" class="t-iframe" scrolling="no" security="restricted" sandbox="">
复制代码
1 H# Z5 j# _& Z: v4 o! d" l) J; U
8 W: m4 f$ B, @' r+ C( ~) p: t) U
  1. <script type="text/javascript" charset="utf-8"># L/ K7 z8 ?0 i4 t) z+ @- Q
  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>');' R* L2 n; S. o* Q* I! H1 U9 O
  3. </script>
复制代码
2、代码层次的屏蔽,方法可行,但不是很人性化。7 P. |+ T! W# f0 l) S
Meta标签方法
* Q& ^& C" ?* _. \- C4 d0 O# O% I
  1. <meta http-equiv="X-FRAME-OPTIONS" content="DENY">
复制代码
PHP方法
% q& v: M' b5 q. P
  1. <?php header('X-Frame-Options:Deny'); ?>
复制代码
Apache主机方法" Q8 `) s9 r6 Z
  1. Header always append X-Frame-Options SAMEORIGIN
复制代码
Nginx主机方法
' ^( A6 e; m4 S* g6 c$ q+ X& g
  1. add_header X-Frame-Options "SAMEORIGIN";
复制代码

  H* P$ M! K& a0 ?( M2 D.htaccess方法, i% j0 C/ P) W8 R; j
在网站根目录下的.htaccess文件中中加一句
! J+ d+ t1 z5 X, K
  1. Header append X-FRAME-OPTIONS "SAMEORIGIN"
复制代码

6 y7 d' S: J5 `! j+ I6 f! @IIS方法2 n' j: z( i' s( I) y8 A
在web.config文件中加
  1. <system.webServer>$ A8 w% l8 c2 w8 [# l2 c7 ~
  2.   ...% v$ E7 t8 S6 J
  3.   <httpProtocol>
      V$ \. G2 [3 p" ^
  4.     <customHeaders>
    + E& m- C  k  l% m1 |0 ~9 K
  5.       <add name="X-Frame-Options" value="SAMEORIGIN" />      , h% ^+ @! Z7 j9 n* r. M/ E3 r
  6.     </customHeaders>    # x2 T3 e2 k  R6 a: r) q0 \
  7.   </httpProtocol>  . F9 R5 E1 c+ ^: r
  8.   ...
    $ Y& K4 @1 g# p8 R3 f3 ]  \
  9. </system.webServer>
复制代码

' f5 T$ o) Y+ [5 k; t, u之所以说不人性化,是因为这样操作之后,别人iframe会显示服务器拒绝之类的信息,虽然是屏蔽了,但是自己网站也不能宣传了。, l9 t3 `. O+ F) S, u/ }3 y
+ [5 v" f& _  q7 [6 Z
3、推荐解决方法。9 s9 K) ?! |; C  ]6 `
  1. <script language="javascript">  
    $ p* J' G3 @- `
  2. if(top != self){
      V6 S; g! E& _8 F2 J
  3.     location.href = "http://xp6.org/iframe.html";  1 o1 D5 C* W" Y7 U9 A* Q
  4.     top.location.href=self.location.href;
    " v+ T9 W( e4 W; z8 A
  5. }  
    / e  B0 R0 J7 u% Q/ U+ |9 P7 S- f& h7 V
  6. </script>
复制代码

: A8 x: i3 K  p6 A" o3 B将上面的代码复制到需要屏蔽页面<head>里面加载。
, e+ v0 }$ [, m$ P制作一个iframe.html页面里面放张网站宣传图片,加个链接,放到网站根目录。' t- J8 A" T8 c9 Q: L+ W
原理:; V1 }+ ^; ~, Z6 }4 \
第一步直接强制访问咱自己设定的iframe.html页面,如果网站禁用了JS跳转,那么执行到这一步就结束了,这样即使他们iframe了咱的网站,看到的只是咱的图片宣传页。- L0 A0 q6 n- m* P! g: r8 r4 e
第二步,如果没有禁用JS,那么会接着执行top.location.href=self.location.href; ,然后跳转到我们的网址页面。5 ]( x+ [$ [9 Z% S
目前测试这种方法没什么问题。- S. T7 t1 F' O; [4 v/ k5 M

) M+ W# \1 w$ j; M. h# S3 W' Z3 B1 x- m
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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