搜索
查看: 14448|回复: 0

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

[复制链接]
发表于 2020-11-16 17:30:36 | 显示全部楼层 |阅读模式
前面说了如何阻止 iframe里引用的网页自动跳转,已达到iframe页面的目的。
$ Z8 Q  _* B, ~4 c' v/ F! J这次讲一下如何防止自己的网页被别人iframe。$ V6 I+ d, I' A4 p1 a" I

5 f: q. o* i. [& N% Y1、这些方法都可行,但不是太可靠。
) t) t. d8 e! ~; z3 ]7 l- x  \: C
  1. <script language="javascript">
    1 e5 E% V3 A' T& x% J1 j
  2. if( top.location != self.location) top.location.href=self.location.href;
    / I) F3 E: r0 w* t' K
  3. </script>
复制代码
) ~7 o( o8 }5 G  I) Q; a
  1. <script language="javascript">1 F/ U9 {  M- v9 q/ Q$ ?& B, a
  2. if (top.location != location) top.location.href = location.href;
    . W9 P) g3 @$ m3 V( e& t' a+ {: \( }
  3. </script>
复制代码
2 s6 C8 o9 T+ f/ {
  1. <script language="javascript">
    $ c- g8 {' l, M0 E9 f
  2. if (top.location != self.location) {top.location=self.location;}
    3 }1 G% x( |2 A' O! _( ^
  3. </script>
复制代码

8 p. N# S% K# S; R
  1. <script language="javascript">2 N1 L* [( P& P: F5 L) L) m* v
  2. if (top.frames.length!=0) top.location=self.document.location;
    * n1 j* l+ N4 }1 J  W! t. I! Q0 z# {
  3. </script>
复制代码
不可靠的原因:
9 w! S2 \$ E: W& Q: R) a: v, @当别人用如下类似代码做IFRAME嵌套调用时,就可能躲过你的页面的javascript代码。1 P6 c( U9 B2 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>. Y. r2 w9 e$ d( |$ B8 a- F# k
  2. <script language="javascript">   f" c  K* l& |7 I. z
  3. var location="";
    9 M5 R" N) x2 J9 \' |
  4. var navigate="";5 s* |% H! J0 L. H6 F1 P. i# ]
  5. frames[0].location.href="";$ S- J$ G3 Z: j( s! ]( M! C
  6. </script>
复制代码

( u% W  g5 O8 T5 |( N! O8 }% t
  1. <iframe src="http://xp6.org/" class="t-iframe" scrolling="no" security="restricted" sandbox="">
复制代码

( d4 C* w& n" ^7 V# \2 n7 y5 h3 f9 R/ H1 A+ ^. m& w' p5 R! a; K9 h
  1. <script type="text/javascript" charset="utf-8">5 l( |# x- a. L) ?! S; c
  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>');
    : e; p, F3 v0 l  y# P3 T" S
  3. </script>
复制代码
2、代码层次的屏蔽,方法可行,但不是很人性化。
  |' b+ @: W" }0 sMeta标签方法  x, W% f4 m1 L6 D( o8 A  H1 X
  1. <meta http-equiv="X-FRAME-OPTIONS" content="DENY">
复制代码
PHP方法1 g2 z) C: z% c0 n! A
  1. <?php header('X-Frame-Options:Deny'); ?>
复制代码
Apache主机方法  B# Q3 v( a# J- U' j5 @
  1. Header always append X-Frame-Options SAMEORIGIN
复制代码
Nginx主机方法; Y/ k+ U% X/ b' v$ k% z0 S6 Y
  1. add_header X-Frame-Options "SAMEORIGIN";
复制代码

9 U6 G# y7 W$ F/ _.htaccess方法
  C. ^2 a* T$ B, U# u0 d在网站根目录下的.htaccess文件中中加一句
1 Q8 Z+ M0 m8 D0 O8 |) E( l
  1. Header append X-FRAME-OPTIONS "SAMEORIGIN"
复制代码
) B7 V1 [: E: E, y9 P2 z7 F
IIS方法
2 G0 K4 W1 \/ r0 W在web.config文件中加
  1. <system.webServer>: X/ x( F& j$ q, Q: }, x, D
  2.   ...
    ' ]% X/ R- _+ x* O1 w0 C& d
  3.   <httpProtocol>
    , T+ D% N/ o8 O' V1 k9 a
  4.     <customHeaders>
    8 F9 r" f5 }& |$ g; c% o/ C- D
  5.       <add name="X-Frame-Options" value="SAMEORIGIN" />      
    8 G- X' w2 l: _5 K" B# N
  6.     </customHeaders>    5 @2 c: d. [$ W; w+ W
  7.   </httpProtocol>  
    1 D* N' y) ?$ Z4 x$ O6 J, W& w
  8.   ...( Z- o7 o/ `' c
  9. </system.webServer>
复制代码
( Y; x9 K* {( V" X$ g1 X4 e
之所以说不人性化,是因为这样操作之后,别人iframe会显示服务器拒绝之类的信息,虽然是屏蔽了,但是自己网站也不能宣传了。
( m* p; ^/ Y6 ^0 t# w& R
3 a/ h8 x: x4 A% y) L" w3 B3、推荐解决方法。0 x5 T7 U* S% j: K9 r4 v+ |* o
  1. <script language="javascript">  
    2 P0 Q8 C* Q  c2 V. Y
  2. if(top != self){  z7 f& o8 Q. n0 p+ j
  3.     location.href = "http://xp6.org/iframe.html";  
    " n5 D# H' p: n6 {5 n
  4.     top.location.href=self.location.href;% z, n' J( |  A- {( g
  5. }  
    $ X8 |; j* E9 Y* ^( L3 m+ i
  6. </script>
复制代码

/ B* t, ^1 X' h7 \将上面的代码复制到需要屏蔽页面<head>里面加载。
' I1 q0 K2 X" x. @制作一个iframe.html页面里面放张网站宣传图片,加个链接,放到网站根目录。
) t  p) P2 r# L1 F8 y/ T7 j* p$ V9 C原理:3 O" C4 |- {4 S8 F
第一步直接强制访问咱自己设定的iframe.html页面,如果网站禁用了JS跳转,那么执行到这一步就结束了,这样即使他们iframe了咱的网站,看到的只是咱的图片宣传页。
- Q! C4 [: P3 F1 r8 \0 @' a第二步,如果没有禁用JS,那么会接着执行top.location.href=self.location.href; ,然后跳转到我们的网址页面。
% ^# [5 g# M; W0 e5 J目前测试这种方法没什么问题。8 i' I3 @% `# v, d
# K, b6 m: X3 Z( ^! D4 |
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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