搜索
查看: 14362|回复: 0

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

[复制链接]
发表于 2020-11-16 17:30:36 | 显示全部楼层 |阅读模式
前面说了如何阻止 iframe里引用的网页自动跳转,已达到iframe页面的目的。
  U7 d5 Y" ?) E: e2 i这次讲一下如何防止自己的网页被别人iframe。; z1 i4 G1 q8 \, [! F- `0 e6 k
8 a5 _  I% l1 a5 P5 P- o6 ~
1、这些方法都可行,但不是太可靠。& {+ Y( [3 u! {6 D' }
  1. <script language="javascript">- m7 r) P2 @( L- j+ _* e) r
  2. if( top.location != self.location) top.location.href=self.location.href;5 M3 Q0 `" n' l9 _
  3. </script>
复制代码

0 e# ^4 e. b7 a+ A# a( }% X, F; C
  1. <script language="javascript">% Q' f: c0 I! L% O: H. f+ P
  2. if (top.location != location) top.location.href = location.href;
      r) a/ q5 V1 R# |$ G% L0 }1 i
  3. </script>
复制代码
7 D$ n% K" H' `& @9 c. r/ M
  1. <script language="javascript">. G2 O3 L7 Q* }1 P$ W
  2. if (top.location != self.location) {top.location=self.location;}2 B& s* ~. P& Z: I/ a0 L5 n( k; x
  3. </script>
复制代码
) ]9 B( o3 p$ E2 ~5 I. F- W& W
  1. <script language="javascript">
    ! @7 m0 z6 s7 G" M+ w  V- S8 k
  2. if (top.frames.length!=0) top.location=self.document.location;
    * R7 L, T8 N0 y" f! }
  3. </script>
复制代码
不可靠的原因:
& g* |- ]2 A8 ]4 o8 s  A当别人用如下类似代码做IFRAME嵌套调用时,就可能躲过你的页面的javascript代码。6 A. }/ i, Y$ Y% B" 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>
    6 X+ Y3 ]$ o$ q% W. y! K
  2. <script language="javascript"> " c: F# _: M8 }8 D2 i, h. `
  3. var location="";
    6 m. ]' \4 k% ?
  4. var navigate="";
    : }2 F0 b& u' R7 Q# z) S
  5. frames[0].location.href="";# h+ G) E5 P4 b
  6. </script>
复制代码
7 {2 R/ g' a) p4 Z3 p
  1. <iframe src="http://xp6.org/" class="t-iframe" scrolling="no" security="restricted" sandbox="">
复制代码
- P" p' K( P* n
  l! f. Q7 w6 A; T7 E5 A% R
  1. <script type="text/javascript" charset="utf-8">
    1 l! F& f) T7 E6 l- ]  M  W, o
  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>');
    ' w0 g+ [$ s/ v; F
  3. </script>
复制代码
2、代码层次的屏蔽,方法可行,但不是很人性化。
  D( X  |" T  |2 A, X* p' i! GMeta标签方法: g) V8 I# x& ^' U! q3 g
  1. <meta http-equiv="X-FRAME-OPTIONS" content="DENY">
复制代码
PHP方法0 E, h2 z) Q" }
  1. <?php header('X-Frame-Options:Deny'); ?>
复制代码
Apache主机方法
; e  }2 r. x$ `5 D! p6 _
  1. Header always append X-Frame-Options SAMEORIGIN
复制代码
Nginx主机方法. {; j! K5 j+ _' d; ~9 L
  1. add_header X-Frame-Options "SAMEORIGIN";
复制代码
- H8 U% z- a7 d, o. }
.htaccess方法
- X) A# g( k3 m% ^4 y% H4 n$ `/ z在网站根目录下的.htaccess文件中中加一句
7 |9 |5 s0 A7 _
  1. Header append X-FRAME-OPTIONS "SAMEORIGIN"
复制代码

( R, N; f7 i) C: O" h. ZIIS方法
! Q* j/ X1 e0 m% G7 x5 M* w9 h5 e在web.config文件中加
  1. <system.webServer>. |, ]! |: v1 j, i  i0 K+ }: K
  2.   ...
    ! ^/ h# \# I4 R: p
  3.   <httpProtocol>6 L! x0 M6 ]  q. u
  4.     <customHeaders>+ |# `, |2 c/ c: Z% }
  5.       <add name="X-Frame-Options" value="SAMEORIGIN" />      
    : g* A6 r6 y: H% \$ H
  6.     </customHeaders>   
    5 o" z5 E9 x5 A- U& w* f
  7.   </httpProtocol>  1 z3 ^; ?5 U2 J: G( o5 ^/ `
  8.   ...
    & b) N' ~; ~5 q. I- m' l
  9. </system.webServer>
复制代码

: a6 E4 k" s" f2 p% z% i0 z之所以说不人性化,是因为这样操作之后,别人iframe会显示服务器拒绝之类的信息,虽然是屏蔽了,但是自己网站也不能宣传了。
5 a" j  c# G4 d8 m7 n5 [* w* R9 R# {( `" o+ g1 L5 ~3 \
3、推荐解决方法。/ @% a7 }7 D! K% m7 m5 k" `
  1. <script language="javascript">  
    $ n/ A3 q! b7 f$ i' S5 z  g8 D. u
  2. if(top != self){# ^- L, G2 b- t& M8 g
  3.     location.href = "http://xp6.org/iframe.html";  
    ( f; k+ V# n; I+ H- z1 \
  4.     top.location.href=self.location.href;4 B3 y4 Z2 E$ ?$ `; Q1 e7 D
  5. }  . p7 N" H( T2 g$ }. `) t
  6. </script>
复制代码
6 c2 J* ], t- y+ g) ~# B. ?
将上面的代码复制到需要屏蔽页面<head>里面加载。
* J$ i4 a  R3 e2 Z/ }# Y0 X制作一个iframe.html页面里面放张网站宣传图片,加个链接,放到网站根目录。  A0 |3 c- v+ s" r: i7 |
原理:: O  Q' Z) g- C$ h* H
第一步直接强制访问咱自己设定的iframe.html页面,如果网站禁用了JS跳转,那么执行到这一步就结束了,这样即使他们iframe了咱的网站,看到的只是咱的图片宣传页。
8 e) z. o9 `+ b/ D) ~1 o: a第二步,如果没有禁用JS,那么会接着执行top.location.href=self.location.href; ,然后跳转到我们的网址页面。
! c6 L5 |; u: h. c. _8 ?目前测试这种方法没什么问题。" {* m' p& O7 X% ]8 k# _
4 J- q6 W  d' W
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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