防止网站被恶意框架嵌入的 JS 代码分享

2017-09-2715:37:52 24 3,552 1217字阅读4分3秒
摘要

虽然,目前还无法判定具体效果如何,但至少测试的时候确实是跳转回“被嵌入网页的网址”了,上述代码只需要放置到网站的“”就可以了,如果有缓存插件的,记得要部署好代码后清楚一下缓存哦,如果还有 CDN 的话,最好是“全站刷新”更新一下 CDN 的缓存,以便代码可以及时同步生效。

近两年来明月一直深受恶意框架嵌入的骚扰,可以说是烦不胜烦呀!几乎每天都可以在服务器日志上看到各种奇葩域名的 Referring,甚至某些嚣张的直接用一个我主域名作为二级域名的仿冒域名,真的是太无耻了,据说这样的黑帽做法可以借助被嵌入域名的权重来欺骗搜索引擎的目的,总之就是不是个啥好东西,对于网站来说绝对是百害无一利的,我曾尝试通过 IP 屏蔽的方法来应对,但是发现基本是无效的,因为对方会频繁的更换主机和 IP,甚至有时候还是阿里云的主机,总之主机 IP 可以说是五花八门的,根本无从下手屏蔽。

xlsscptzdl.ssc187.xyz

zqssczjjg.zdizod.webcam

zqsscsfdjc.sscrj4419.cn

www.ymanz.com.xiefei.info

上面这四个域名就是使用了恶意框架嵌入的,几乎每天都会有,烦死了都

防止网站被恶意框架嵌入的 JS 代码分享

目前国内流行的这种流氓行为:使用框架(Frame),将你的网页嵌入它的网页中。好像很普遍的样子,网站一旦被“盯上”就跟狗皮膏药一样难以逃脱,这种流氓行为带来的害处还是不少的,比如:

  • 它故意屏蔽了被嵌入网页的网址,侵犯了原作者的著作权,以及访问者的知情权;
  • 大量业者使用的是不可见框架,使得框架网页与被嵌入的网页视觉上完全相同,欺骗性极高;
  • 不良业者在被嵌入网页的上方或周围附加广告(甚至病毒和木马),不仅破坏原作者的设计意图和形象,而且属于侵权利用他人资源的谋利行为;
  • 如果访问者在框架内部,从一个网页点击到另一个网页,浏览器的地址栏是不变的,这是很差的用户体验,并且访问者会将这种体验归咎于原网页的作者。

目前,明月采取的应对方法仅有下面所示的 JS 代码了,测试了一下还是有一定的效果的,至少只要恶意框架嵌入的都会自动跳转回“被嵌入网页的网址”。

  1. <script type="text/javascript">
  2. if (window!=top) // 判断当前的 window 对象是否是 top 对象
  3. top.location.href =window.location.href; // 如果不是,将 top 对象的网址自动导向被嵌入网页的网址
  4. try{
  5.   top.location.hostname;
  6.   if (top.location.hostname != window.location.hostname) {
  7.     top.location.href =window.location.href;
  8.   }
  9. }
  10. catch(e){
  11.   top.location.href = window.location.href;
  12. }
  13. </script>

虽然,目前还无法判定具体效果如何,但至少测试的时候确实是跳转回“被嵌入网页的网址”了,上述代码只需要放置到网站的“<head></head>”就可以了,如果有缓存插件的,记得要部署好代码后清楚一下缓存哦,如果还有 CDN 的话,最好是“全站刷新”更新一下 CDN 的缓存,以便代码可以及时同步生效。

本文最后更新于2019年7月6日,已超过 1 年没有更新,如果文章内容或图片资源链接失效和错位的,请留言反馈,我们会及时处理,谢谢!

历史文章推荐:

  • 本博客公众号
  • 扫一扫关注!
  • weinxin
  • 本博客小程序
  • 微信内浏览本博客
  • weinxin
明月登楼
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:24   其中:访客  0   博主  0
    • 山外的鸭子哥 山外的鸭子哥 2

      Google Chrome已经不再支持这种策略了