搜索
查看: 14660|回复: 0

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

[复制链接]
发表于 2020-11-16 17:30:36 | 显示全部楼层 |阅读模式
前面说了如何阻止 iframe里引用的网页自动跳转,已达到iframe页面的目的。, @5 w% o2 N" E4 d( @7 w
这次讲一下如何防止自己的网页被别人iframe。+ a, h0 x! E  u4 }- |# J( F

) O  Y4 |- u" l: g% z1 A1、这些方法都可行,但不是太可靠。2 b- E8 |, |& A% t9 E$ S, |
  1. <script language="javascript">
    , o5 U8 k% H. L. a, e% ]
  2. if( top.location != self.location) top.location.href=self.location.href;2 s5 {. n: {( T0 |: C8 a/ Q
  3. </script>
复制代码
' `0 y6 v8 i/ g, d/ m5 {: b
  1. <script language="javascript"># m9 j* a$ |. D% x, |% {
  2. if (top.location != location) top.location.href = location.href;: x: O5 j% Q- @5 J% F, {1 t
  3. </script>
复制代码

! V9 K2 p; ]" D8 w
  1. <script language="javascript">2 k: V% Z- f& M- d
  2. if (top.location != self.location) {top.location=self.location;}
    : k& S+ X9 L6 Y5 u
  3. </script>
复制代码
2 A& i: ?) R+ m2 O( y
  1. <script language="javascript">
    6 q* J2 `: N" y- ~. p" t
  2. if (top.frames.length!=0) top.location=self.document.location;
    ) I# A" c% V* D! f
  3. </script>
复制代码
不可靠的原因:# w7 d5 ]9 J/ V0 }
当别人用如下类似代码做IFRAME嵌套调用时,就可能躲过你的页面的javascript代码。; Z& J1 D7 ^8 w* W6 F6 {$ E# 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>
    , q$ v6 e" j( H( _% t
  2. <script language="javascript">
    . E! e. x% k2 F) b9 w
  3. var location="";5 w  D* A! z' I) g: G. ?- `
  4. var navigate="";4 v4 s, X% U) }0 X
  5. frames[0].location.href="";) g8 p' t) J/ R. Y" g
  6. </script>
复制代码
2 t* _% R- R+ ?- |
  1. <iframe src="http://xp6.org/" class="t-iframe" scrolling="no" security="restricted" sandbox="">
复制代码

- A! X. ^5 e- U3 `
9 f: C% p- F( ?, Y& }
  1. <script type="text/javascript" charset="utf-8">* D5 |0 F0 P, Q0 h/ l9 C, m/ F3 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>');# U. v( r9 \) P7 l4 a1 |6 m
  3. </script>
复制代码
2、代码层次的屏蔽,方法可行,但不是很人性化。
6 g5 `# L3 l. E  ^, J4 LMeta标签方法( |5 a; f; \( t* L' G. ?1 A
  1. <meta http-equiv="X-FRAME-OPTIONS" content="DENY">
复制代码
PHP方法! e5 Y/ Q# ]& _* O9 h5 Z
  1. <?php header('X-Frame-Options:Deny'); ?>
复制代码
Apache主机方法6 ~( U. e) P7 B6 f, ?
  1. Header always append X-Frame-Options SAMEORIGIN
复制代码
Nginx主机方法
4 g/ W: T* Z' [( t
  1. add_header X-Frame-Options "SAMEORIGIN";
复制代码

5 J1 T4 Z' v2 _.htaccess方法/ R8 u6 B! O' H4 c' J
在网站根目录下的.htaccess文件中中加一句  _8 ]- ]+ {# ]3 _  n) l- F
  1. Header append X-FRAME-OPTIONS "SAMEORIGIN"
复制代码

: H& O/ G( V7 _2 c9 v; YIIS方法
6 Y2 |% C1 u5 I7 `9 L* R$ C5 G. o: G在web.config文件中加
  1. <system.webServer>
    . x. I7 l- J+ x1 n5 d) M  x& c% d
  2.   ...: l: O( h* a' c% H( f7 T  G0 c
  3.   <httpProtocol>; G& I. W$ _2 s( u5 J! R1 u) g
  4.     <customHeaders>
    - w9 }+ w' P* j' r/ x9 h  ^" B
  5.       <add name="X-Frame-Options" value="SAMEORIGIN" />      " t! x: N5 R$ d, N
  6.     </customHeaders>    9 f& h) |4 G' Y: Q
  7.   </httpProtocol>  
    ( {6 C+ G, C4 U+ k$ u1 t/ u
  8.   ...& w% b3 O4 l1 I9 g$ s) K
  9. </system.webServer>
复制代码
$ W  I1 P3 ?% u4 B8 Y/ j' K
之所以说不人性化,是因为这样操作之后,别人iframe会显示服务器拒绝之类的信息,虽然是屏蔽了,但是自己网站也不能宣传了。
# m7 j, c& r/ i5 H& I5 f
+ Z/ j: q- r7 a; k2 Q" K3、推荐解决方法。( i3 n! O5 a( e8 m' c) S
  1. <script language="javascript">  
    " f  D5 a6 y; p8 w$ L2 N
  2. if(top != self){/ h+ l/ m1 Z" _% }- @. E- n
  3.     location.href = "http://xp6.org/iframe.html";  * I( U! [$ M1 B/ e9 v4 Y
  4.     top.location.href=self.location.href;
    . E7 v4 x+ I/ {( {: ?! I( }9 y4 E
  5. }  8 F0 W6 M: A1 e3 b
  6. </script>
复制代码

0 K+ [  z3 K% Q6 r8 Z+ [! F将上面的代码复制到需要屏蔽页面<head>里面加载。
5 S0 M( x+ L1 A- I  W制作一个iframe.html页面里面放张网站宣传图片,加个链接,放到网站根目录。, W9 Z% K* J# r
原理:
& D9 f7 A" x9 h8 y# M0 H第一步直接强制访问咱自己设定的iframe.html页面,如果网站禁用了JS跳转,那么执行到这一步就结束了,这样即使他们iframe了咱的网站,看到的只是咱的图片宣传页。0 l6 w' Q9 L. h( R
第二步,如果没有禁用JS,那么会接着执行top.location.href=self.location.href; ,然后跳转到我们的网址页面。
% y! H- _2 n& w+ k1 |5 O* q目前测试这种方法没什么问题。
5 W; Y' `& S: P7 ]' z
; z1 J" O* G/ Z1 W0 D
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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