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

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

防止网站被恶意框架嵌入的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 的缓存,以便代码可以及时同步生效。

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin
avatar

发表评论

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