搜索
查看: 14374|回复: 0

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

[复制链接]
发表于 2020-11-16 17:30:36 | 显示全部楼层 |阅读模式
前面说了如何阻止 iframe里引用的网页自动跳转,已达到iframe页面的目的。' b' `0 d$ N; @0 O4 S9 {
这次讲一下如何防止自己的网页被别人iframe。
9 p! N$ a. r8 Z% p0 W
' N1 _% `- w3 U) l1、这些方法都可行,但不是太可靠。0 `' B/ h3 g8 S. t/ `# J3 q
  1. <script language="javascript">; R4 |6 b+ X" @- D$ G: |
  2. if( top.location != self.location) top.location.href=self.location.href;6 ^. j" G5 q* n! E/ W
  3. </script>
复制代码
8 N, C5 A" p7 b7 V, [. q7 \
  1. <script language="javascript">
    6 J/ _' Q" q. W- P. j
  2. if (top.location != location) top.location.href = location.href;) O6 T  d9 \  v6 _
  3. </script>
复制代码
/ Q8 G2 F& k. v( J4 e3 M3 \% f
  1. <script language="javascript">
    % P6 ~/ z. k7 q0 m) B: f5 Z. I# _
  2. if (top.location != self.location) {top.location=self.location;}$ R4 X* G3 w* A# A
  3. </script>
复制代码

  V. M( g8 V- F
  1. <script language="javascript">! g! ^+ F$ j) R
  2. if (top.frames.length!=0) top.location=self.document.location;. |+ m$ y6 ?/ y' {  @- y6 [
  3. </script>
复制代码
不可靠的原因:
6 Z7 Q" |4 w/ t当别人用如下类似代码做IFRAME嵌套调用时,就可能躲过你的页面的javascript代码。& I/ u2 x3 X( ~
  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>
    * v6 `3 h- h/ L
  2. <script language="javascript"> 7 d! ~% L4 M3 M, {. Z) {
  3. var location="";7 n+ s1 ]7 o9 T5 F* i3 m& s
  4. var navigate="";3 D( ]; I- G+ E  U! B  a6 V
  5. frames[0].location.href="";0 t5 \. T$ K7 q/ I/ r
  6. </script>
复制代码

* s" i* B$ Z- Y& y4 @
  1. <iframe src="http://xp6.org/" class="t-iframe" scrolling="no" security="restricted" sandbox="">
复制代码

8 |7 }- \  \# a/ ]- I  Z7 _9 s9 D3 t$ q' _5 j( ^* @! ?
  1. <script type="text/javascript" charset="utf-8">
    9 y' ?. R5 ?, D
  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>');
    ! l0 Z) x7 ]! S7 S- E3 F! V
  3. </script>
复制代码
2、代码层次的屏蔽,方法可行,但不是很人性化。' o+ W8 F3 M$ x% ?
Meta标签方法
" P" G3 I; @" W" Z* u  k5 x
  1. <meta http-equiv="X-FRAME-OPTIONS" content="DENY">
复制代码
PHP方法
& R( A% B) k* y& Z: l6 @! v
  1. <?php header('X-Frame-Options:Deny'); ?>
复制代码
Apache主机方法' _1 ]* s9 j, a, Q
  1. Header always append X-Frame-Options SAMEORIGIN
复制代码
Nginx主机方法8 y5 R( J( l& C! n, k/ v9 E, i7 [
  1. add_header X-Frame-Options "SAMEORIGIN";
复制代码

6 s- l, d9 Z& a* i4 W.htaccess方法1 I. [' [$ S1 n: c4 `; x
在网站根目录下的.htaccess文件中中加一句- g6 }7 [1 M1 t
  1. Header append X-FRAME-OPTIONS "SAMEORIGIN"
复制代码
+ @) {* U! G7 Z( N$ f1 P' W( f
IIS方法
1 {+ w- ^1 X; I# X9 I; t在web.config文件中加
  1. <system.webServer>
    9 e% j0 p" z; R' J" f6 T% J( @8 c
  2.   ...
    / {; m) B/ D  [4 G% Q
  3.   <httpProtocol>2 A. w2 p3 T  N; b5 v1 S- c2 u
  4.     <customHeaders>
    , k8 J$ v* c, M) S. t5 x
  5.       <add name="X-Frame-Options" value="SAMEORIGIN" />      
    6 N/ p2 n/ D! `; M
  6.     </customHeaders>   
    - b/ o- A$ X/ w: g$ X
  7.   </httpProtocol>  
    & s/ V- S+ [7 |  z0 A
  8.   ...2 ]" [' Z! C% r4 N. h% o+ X
  9. </system.webServer>
复制代码

' d& Y. @3 J! G3 u, m之所以说不人性化,是因为这样操作之后,别人iframe会显示服务器拒绝之类的信息,虽然是屏蔽了,但是自己网站也不能宣传了。
) h- A8 [  P( O& d1 P# Y
7 v" N6 M) c- _. m* q3、推荐解决方法。, ]* k3 Q% y1 s; V
  1. <script language="javascript">  , A3 K# m, ~) E: W4 }
  2. if(top != self){/ B3 ?; u4 F6 W- }7 C9 T9 y1 P
  3.     location.href = "http://xp6.org/iframe.html";  
    % W! n+ X; o! ~; E
  4.     top.location.href=self.location.href;: C0 G5 Q' E$ g
  5. }  
    / ~7 \, a( M5 \7 D
  6. </script>
复制代码

, v$ E2 K: q+ G3 N9 O' Q# ?! u将上面的代码复制到需要屏蔽页面<head>里面加载。
# ^! p5 m( `* a" x/ [" L$ v7 t制作一个iframe.html页面里面放张网站宣传图片,加个链接,放到网站根目录。
4 D+ U  _+ a/ }% j原理:
9 z7 z* m: ?( _1 R第一步直接强制访问咱自己设定的iframe.html页面,如果网站禁用了JS跳转,那么执行到这一步就结束了,这样即使他们iframe了咱的网站,看到的只是咱的图片宣传页。
# m& n7 Y9 ^1 M8 L4 T第二步,如果没有禁用JS,那么会接着执行top.location.href=self.location.href; ,然后跳转到我们的网址页面。* D5 e! S; h: [7 B
目前测试这种方法没什么问题。& k, Z% W# C3 F) a% ]% N3 W1 H

5 ~  H; O+ D/ L3 [& ^
回复

使用道具 举报

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

本版积分规则

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

虾皮社区,成立十年了!

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

Copyright © 2007-2019 xp6.org Powered by Discuz

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