搜索
查看: 14522|回复: 0

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

[复制链接]
发表于 2020-11-16 17:30:36 | 显示全部楼层 |阅读模式
前面说了如何阻止 iframe里引用的网页自动跳转,已达到iframe页面的目的。
. x, r$ N9 G+ A( b4 N1 b* r* f这次讲一下如何防止自己的网页被别人iframe。
) V, ^6 S, K$ @$ ~% C. t
6 R5 L# E- P4 Q7 E) o0 G1、这些方法都可行,但不是太可靠。
% V" z. ?& q/ G" \) B  _0 F
  1. <script language="javascript">
    1 m0 \2 h" H2 g. L5 g+ s, t
  2. if( top.location != self.location) top.location.href=self.location.href;
    ) T$ \1 c% r" N$ }! p; S
  3. </script>
复制代码

. ?: ]2 @7 f8 H5 }& {! a
  1. <script language="javascript">! ~( o: N7 C: ~- P* f% M& p# R
  2. if (top.location != location) top.location.href = location.href;
    3 ^" e9 ?. d7 w4 z% W( }
  3. </script>
复制代码
5 J! u, T  Z. n+ l5 J% \- B- ]/ d7 C
  1. <script language="javascript">3 ?8 r% {$ u. }7 `( Q) z
  2. if (top.location != self.location) {top.location=self.location;}
    4 ], u: A! @  w4 R/ b
  3. </script>
复制代码
9 g: g( L. {# f7 ?* w
  1. <script language="javascript">  d$ A( l7 B$ Y( ?
  2. if (top.frames.length!=0) top.location=self.document.location;4 P8 |- O5 u+ C: A# ?0 j* O
  3. </script>
复制代码
不可靠的原因:# J/ k3 ~1 q9 g. D0 F
当别人用如下类似代码做IFRAME嵌套调用时,就可能躲过你的页面的javascript代码。# Y9 m( x7 p9 n; J/ z6 ^0 H
  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>3 g- p, T  y2 `/ o* D
  2. <script language="javascript"> & d9 k0 Y. B; r3 x, n
  3. var location="";' s/ ]% T5 m8 d) V6 v2 d3 L5 N
  4. var navigate="";
    3 u" z" g$ E' m- L+ E( x
  5. frames[0].location.href="";
    % n! \. z/ l; q$ S7 f) I7 r. W% p  O
  6. </script>
复制代码

, @. |% p, t2 ~# q" C% [, J3 f# W/ }
  1. <iframe src="http://xp6.org/" class="t-iframe" scrolling="no" security="restricted" sandbox="">
复制代码
6 F% |/ O; u  G" L
. w; `# ^( D- L3 A+ d
  1. <script type="text/javascript" charset="utf-8">* [- _2 E) K' H- n5 l
  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>');
    - l4 ]# r. W  Z: i  m+ x! A
  3. </script>
复制代码
2、代码层次的屏蔽,方法可行,但不是很人性化。4 H2 R& D* j0 ]. e
Meta标签方法
. n7 o( T$ z1 O1 f! t" M
  1. <meta http-equiv="X-FRAME-OPTIONS" content="DENY">
复制代码
PHP方法  `1 A- w6 T% i! \
  1. <?php header('X-Frame-Options:Deny'); ?>
复制代码
Apache主机方法
+ Z4 h* F4 h& S3 f3 s
  1. Header always append X-Frame-Options SAMEORIGIN
复制代码
Nginx主机方法
' S: t! g+ l& E3 y# e# h
  1. add_header X-Frame-Options "SAMEORIGIN";
复制代码
: }' s0 V6 ^' h4 D. `
.htaccess方法0 F3 n$ _4 n  o
在网站根目录下的.htaccess文件中中加一句
( ]* J" O$ T6 }
  1. Header append X-FRAME-OPTIONS "SAMEORIGIN"
复制代码
: S0 r* o. ~0 k- N
IIS方法
$ |6 ^0 S7 h5 F2 i- r. K在web.config文件中加
  1. <system.webServer>
    # n7 {  u, B& G- h
  2.   ...
    % l8 q9 K" [# F/ l6 f9 o9 k
  3.   <httpProtocol>
    ! s1 V% X" n1 t$ {2 a
  4.     <customHeaders>
    5 }( }" w3 n1 v! r
  5.       <add name="X-Frame-Options" value="SAMEORIGIN" />      - d. `$ B7 U' i4 \8 U7 g8 T
  6.     </customHeaders>   
    1 h* v9 g8 T3 B) r
  7.   </httpProtocol>  
    5 K& q; Z  `# |, f
  8.   ...
    - j9 Q# F8 c" {2 e; x
  9. </system.webServer>
复制代码
, g1 p1 I7 }" T4 t) q+ N) ~
之所以说不人性化,是因为这样操作之后,别人iframe会显示服务器拒绝之类的信息,虽然是屏蔽了,但是自己网站也不能宣传了。
# Y" ~$ J% w2 y& I) Q+ h) P
  B4 `# g7 g  j! k  A- z: U3、推荐解决方法。
0 g- q# X' `% l/ m
  1. <script language="javascript">  " x4 e1 y1 L* N6 S
  2. if(top != self){5 F& Y% r4 u- h8 @2 ?0 D, x
  3.     location.href = "http://xp6.org/iframe.html";  / T3 {3 w# N8 }. b; L8 u* ]$ d
  4.     top.location.href=self.location.href;
    % K7 N& D# z/ l) R
  5. }  
    $ z0 {% L& j/ q3 @* S' r
  6. </script>
复制代码

: M6 Z$ u1 c9 N! S将上面的代码复制到需要屏蔽页面<head>里面加载。, i) |1 N( m2 g. F$ x
制作一个iframe.html页面里面放张网站宣传图片,加个链接,放到网站根目录。
& y7 r. E2 P' R% L  W原理:  a' S6 n$ Z1 Y( b# Z$ o
第一步直接强制访问咱自己设定的iframe.html页面,如果网站禁用了JS跳转,那么执行到这一步就结束了,这样即使他们iframe了咱的网站,看到的只是咱的图片宣传页。
3 \  u4 c2 G4 U: |第二步,如果没有禁用JS,那么会接着执行top.location.href=self.location.href; ,然后跳转到我们的网址页面。$ M% ~- R. }& H% d3 |
目前测试这种方法没什么问题。
* B, `8 J! [. c; t& |0 k
2 i5 Z$ s7 G9 Z4 `
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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