搜索
查看: 14487|回复: 0

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

[复制链接]
发表于 2020-11-16 17:30:36 | 显示全部楼层 |阅读模式
前面说了如何阻止 iframe里引用的网页自动跳转,已达到iframe页面的目的。+ Z$ N( y3 S# j$ e7 J9 _/ ?
这次讲一下如何防止自己的网页被别人iframe。3 s8 K% N; U0 @5 j. D
* J* }) l( u4 b+ u
1、这些方法都可行,但不是太可靠。& H  ~. N" }/ E4 f, m. t9 P. S1 R
  1. <script language="javascript">% {) P0 P; ^; J6 h- t( w) v' j
  2. if( top.location != self.location) top.location.href=self.location.href;6 a) b8 j, U# r: F2 K* e- e, |
  3. </script>
复制代码

5 i5 G  l; \; H7 C0 Z+ y
  1. <script language="javascript">
    % {% j2 n2 I7 Z7 Z2 e( ^8 K
  2. if (top.location != location) top.location.href = location.href;/ S# }6 Z" G3 C! C' g$ {' @
  3. </script>
复制代码

; `) Y) X& W3 m
  1. <script language="javascript">9 Z3 P+ z* F* H* K  a& h! @4 L
  2. if (top.location != self.location) {top.location=self.location;}
    4 u* b6 b) |( U2 }+ T
  3. </script>
复制代码
* n( p* D# R  R& f. Q
  1. <script language="javascript">
    ! o* E7 E1 g% U$ t+ H& U
  2. if (top.frames.length!=0) top.location=self.document.location;8 |' T% }4 A6 J' `" b
  3. </script>
复制代码
不可靠的原因:
- @3 Q4 M; g! K0 @当别人用如下类似代码做IFRAME嵌套调用时,就可能躲过你的页面的javascript代码。
7 G" q8 r" N9 ]  ]- l# p' ^( B
  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>. A+ ]4 D7 |( m3 F* `% x
  2. <script language="javascript"> 5 z& |' k' N& }" }
  3. var location="";
    ( C5 R2 n3 M9 U- G1 |
  4. var navigate="";4 u2 F& F' c# n7 j! g6 J: G
  5. frames[0].location.href="";
    6 m8 |3 B2 V# ~# W
  6. </script>
复制代码
! g4 T% Y0 \) L% Q9 X; w; ]4 `" [
  1. <iframe src="http://xp6.org/" class="t-iframe" scrolling="no" security="restricted" sandbox="">
复制代码
' G7 r% T2 T4 X! o$ b9 B$ x8 h! j/ u
* j8 T& p# m- _* y; X8 p7 l# |2 A( _" l
  1. <script type="text/javascript" charset="utf-8">! V5 o- H, K* t# {
  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>');
    ) k8 I9 [6 q6 E1 |
  3. </script>
复制代码
2、代码层次的屏蔽,方法可行,但不是很人性化。
: b3 l6 Y! D2 B! LMeta标签方法
5 W+ W: A4 w) |: W/ H8 J, K
  1. <meta http-equiv="X-FRAME-OPTIONS" content="DENY">
复制代码
PHP方法8 ~. N  J) Z, A% C# E2 p" v
  1. <?php header('X-Frame-Options:Deny'); ?>
复制代码
Apache主机方法
2 P' C" ]! A# C8 U6 b( q
  1. Header always append X-Frame-Options SAMEORIGIN
复制代码
Nginx主机方法
$ x* `& o  r+ \! B- a
  1. add_header X-Frame-Options "SAMEORIGIN";
复制代码

1 `( @4 M2 N% I5 H.htaccess方法) Q& Y8 q  F1 G( U& E1 p7 A
在网站根目录下的.htaccess文件中中加一句
+ C9 z* k8 C1 C# s" S3 g
  1. Header append X-FRAME-OPTIONS "SAMEORIGIN"
复制代码
* C5 O3 v3 N% C1 q: l1 B7 X
IIS方法
% c+ D2 G1 z$ D% Z, [) v# F在web.config文件中加
  1. <system.webServer>
    ( x7 F4 l. ?6 C
  2.   ...- H- a/ q7 b$ w9 Y, @3 W
  3.   <httpProtocol>3 I, u$ l! v! u9 y7 w, S$ b/ H4 k$ l4 O
  4.     <customHeaders>
    4 k0 P- Y/ J& s5 N. Q* H, H+ s1 h: }4 ~
  5.       <add name="X-Frame-Options" value="SAMEORIGIN" />      
      C/ ~6 ]! }+ f! _8 j
  6.     </customHeaders>    ' z3 Q! {" z( k; C; L) _
  7.   </httpProtocol>  
    1 V3 V5 H! u- d8 \' e+ R
  8.   ...
    5 d4 f0 z. h9 I% I" R2 Z+ q; S  A0 F
  9. </system.webServer>
复制代码
% g3 d1 e/ O/ C0 N- o" ]& T
之所以说不人性化,是因为这样操作之后,别人iframe会显示服务器拒绝之类的信息,虽然是屏蔽了,但是自己网站也不能宣传了。6 G8 n% {  r: w$ N3 x
7 c, S6 E7 u: \; {8 P$ _$ h( B
3、推荐解决方法。' _4 I6 w9 u/ ~$ P; b
  1. <script language="javascript">  
    & t  o* Q) @/ r9 {# ]- d$ j* H+ z) b
  2. if(top != self){
    / T) H$ G1 y0 q* T' w* a
  3.     location.href = "http://xp6.org/iframe.html";  3 V3 H( d0 m# ?
  4.     top.location.href=self.location.href;
    $ c( s/ J; n4 f: ~4 ]
  5. }  
      L2 B  Y; b# E3 Y7 q
  6. </script>
复制代码
/ P, D9 s  l) s0 z, h; H
将上面的代码复制到需要屏蔽页面<head>里面加载。6 s3 H: _( P4 p: _
制作一个iframe.html页面里面放张网站宣传图片,加个链接,放到网站根目录。1 z4 R$ [% [  P$ X& j! Y
原理:0 b3 \  L5 R2 [* k; R3 x
第一步直接强制访问咱自己设定的iframe.html页面,如果网站禁用了JS跳转,那么执行到这一步就结束了,这样即使他们iframe了咱的网站,看到的只是咱的图片宣传页。
* s' c# {( a6 o2 ~4 V% p第二步,如果没有禁用JS,那么会接着执行top.location.href=self.location.href; ,然后跳转到我们的网址页面。
( `8 q  y0 P0 a目前测试这种方法没什么问题。6 {) j% J& Q: M  }  C; K' _6 o" @) o& B
9 y& x4 T% _# g) S$ Z
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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