浅谈网站流量劫持防范措施

news/2024/5/20 0:50:47/文章来源:https://blog.csdn.net/weixin_33973600/article/details/86447238

  前几天上网打开163首页时,发现页面底部莫名其妙的出现一个边框。这在以前可是未曾有过的,而且以后也绝不可能会有这么丑陋的设计。

  趋于好奇心,立刻在边框上点了右键审查元素。尼玛,不看不知道,网易首页的HTML何时变得这么劣质了?

  没有doctype声明,连title元素都没有。script还是language=JScript风格,这得追溯到多少个世纪前了~ 最劣质的是框架居然还是<frameset>元素。。。

  

  不用说,这显然不是网易的页面。页面里的ad字样,早已深深的出买了它,这就是个广告页面!

 

  话说生在天朝,对于各种劫持早已司空见惯。

  在网页里劫持广告,油价2块钱一升的时代就有了,过了世界末日依旧存在,说明其中的利益是巨大的。

  不用计算,用手指估算下就知道了。我朝有好几亿电脑和手机用户,每天有无数个网页被打开。哪怕在1%的网页里插一个广告,都有数百上千万次的展示数量,其中的商机不言而喻。。。

  尽管对此有些无奈,但只要插入的广告不影响正常上网,也没什么意见。如果水平够高,完全可以伪装成页面里本来的广告,至少形式上一样,看不出任何的破绽。这样非但不BS,反倒会有些佩服。

  然而,至今见过的各种广告劫持代码,简直一个比一个劣质。这一次见到的,算是垃圾中的战斗机了。随便找个网页编辑器,自动生成的HTML也比这强多了,再随便找些css稍微修饰下,完全就不会被一眼看出是山寨套牌网页了。尼玛的这本身就是暗地里的干活,却没有任何简单的加密混淆,还光明正大的明文写着广告字样,这不是赤果果的秀智商下限吗?

  不过今天既然花时间吐槽这破玩意,就干脆再深入的讨论讨论未来可能还会出现的变招。

  

  

Lv1. 当前最常见的:把被劫持的网页套在自己的空壳里。

  其实这样做的目的很明确,让广告显示在浏览器的最上方。一般为了达到这个效果,会把广告显示在页面的右下角,盖住被劫持页面的滚动条,看起来就像是浮动在浏览器之外一样!

  这招够狠,乍一看,还真以为是QQ之类的软件弹出的消息框呢。不过只要把浏览器窗口退出最大化,顺便再拖一下窗口,广告也跟着动起来了:)假李鬼就瞬间原形毕露了!

  

防范措施

  这种劫持毫无技术含量可言,反劫持也相当容易。只要在自己网页里验证下window.top,是不是在合法的URL列表里。如果不是,那就不允许被内嵌在其他网页内。更好的办法就是把top地址提交到后台服务器上,统计下究竟有哪些网站套了自己的页面。

   

Lv2. 在返回网页里插入外链<script>

  这种做法相比之前的,要隐蔽的多,至少不会把人家网页的源文件给替换了。

  当然,如果仅仅是在网页的最后面插入<script>,那还是能被瞬间揭穿,甚至会报毒,因为这太山寨了!有哪个正常的网页会在</html>后面跟内容呢?只有挂马的脚本。。。

  不过,要是放对地方,还真不能一眼看出。例如把广告的<script src="">插在<head></head>其中的密密麻麻引用外部js的地方,至少能混上一段时间了。

防范措施

  一般来说,插入的<script>大多都是外链形式的,这样广告变换会比较灵活。对于这种劫持,就要使用类似杀毒软件扫描可疑模块的原理。

  广告不管怎样插,最终都会以静态HTML留在网页里,这是不容抹去铁证!

  当我们的网页HTML加载完毕,触发DOMContentLoaded时,我们可以开始扫描一遍DOM内所有的<script>标签。如果发现有不在信任列表里的src,那么网页很有可能被注入了可疑的脚本!

  我们可以提交可疑脚本的url到后台服务器,做进一步认证。如果确实有风险,那么必须弹出警告框提醒用户。

  

Lv3. 在返回网页里插入内置<script>

  相比外链的脚本,内置的就棘手的多。外链的url域名的总是那么几个,可以简单的实现过滤。但内置脚本就千变万化了!随机变量名,插入废代码,各种玄乎。。。不过,魔高一尺,道高一丈~

防范措施

  想最简单的对付这种劫持,我们必须预先默认个规定,来识别真假脚本元素。我们给自己的<script>元素设置个固定的标签,例如<script myjs="true">。当然具体的标签名和值是经常变动的,对于劫持程序来说,显然不知道会有这么个规矩,仍然傻乎乎的插入<script>...</script>。

  于是在之后的"肃反运动"中,可以直接清洗掉了。。。

  

Lv4. 在返回网页的<script>里混入广告代码

  随着劫持程序不断升级,招数会变的越来越狠。说不定某天,劫持程序内置一个html语义分析器,智能的把广告脚本合并混淆到页面原先的js里!

  若要真是这样,那么之前说的给自己的脚本元素加上特征码也无济于事了。因为特务已深深的混入到了我们内部,真真假假很难被识别!

  最致命的是,脚本未必都是放在<script></script>,也有可能是<element onxxx="">的内联形式。。。这下麻烦大了,我得想想怎么解决。。。

防范措施

  对于这种情况,还真找不到一个简单的方法来识别。唯一能走通的路,就是在发布HTML时,记录下文件的Hash值。可以把值写入网页,或者存在数据库里。

  当网页内容加载完成时,我们通过ajax再次读取当前页面的内容(一般来说读的就是当前页面的缓存数据)。通过同样的算法算出页面的校验值,和原始值一比对,就知道页面是否被第三方篡改了。

  我们还可以把篡改过的html发到后台,找出字符串差异部分,让技术人员分析分析到底做了哪些手脚。

  当然,这只限于静态网页。

  

Lv5. 在返回网页的外链脚本里混入广告代码

  这招可算是终极篇 ———— 它完全不修改任何HTML内容!

  然而,一般的网页多多少少要外链几个js文件吧。于是,那些外链的脚本就成了香饽饽的肥肉被盯上了!

  当然也可以像验证html那样,事先计算出所有的js文件的hash值,然后再使用ajax重新读数据认证比对。

  不过可别忘了,外链js的路径可以是任意的,而ajax只能读取同源站点。而且,外链的<script>也无法读取其text内容。于是当我们使用站点外的js文件时,劫持程序可以肆无忌惮的从中混入代码!

防范措施

  由于受到沙箱策略的严格控制,我们根本无法获得外部js内的实际内容,所以:走为上。尽量不使用外部站点的js文件。

  对于自己站点,但不是同个域名的,可以使用Flash的URLLoader跨域加载,只需部署一个crossdomain.xml即可。

  

Lv6. 劫持程序过滤掉了我们的反劫持代码

  这样的劫持已经超越人类了,赶紧派一个神做了它吧。。。

  ============================================

  

  暂时就YY到这里,以后有新的想法或更好的解决方案,继续来这里补充。

  大家有什么巧妙的检测方法,欢迎留言~

  上面说了一大堆,其本质无法就是在客户端,把使用到的资源和服务器原始资源二进制校验,将出现问题的资源反馈给后台记录,找出安全隐患。

  虽然这里假象嵌入的仅仅是广告脚本,然而这种脚本拥有和页面内其他脚本一样的权限,因此可以轻而易举的获得用户的cookie。

嵌入的脚本甚至可以通过WebSocket连接到黑客控制台,发送你的鼠标和键盘的一举一动,以及页面上显示的内容;对方还可以远程控制,让js在页面里悄悄执行各种意想不到的操作。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_780305.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

恶搞别人电脑输入百度网址出现搜狐的网站--关于Hosts文件一些运用

在学习搭建Web服务器和Apache服务器的原理和运用的时候,用到了虚拟主机技术.于是就涉及到了Hosts文件.然后就小小学习了一点点.然后觉得挺好玩的.下面给分享一下这个文件的作用和一些简单的运用.首先科普一下,hosts文件的定义. Hosts是一个没有扩展名的系统文件&#xff0c;可以…

Java系的大网站架构-LinkedIn和淘宝

国内私募机构九鼎控股打造APP&#xff0c;来就送 20元现金领取地址&#xff1a;http://jdb.jiudingcapital.com/phone.html 内部邀请码&#xff1a;C8E245J &#xff08;不写邀请码&#xff0c;没有现金送&#xff09;国内私募机构九鼎控股打造&#xff0c;九鼎投资是在全国股份…

Nginx配置虚拟机网站根目录

为什么80%的码农都做不了架构师&#xff1f;>>> 今天一个网友叫我帮他在我的vps上配置nginx虚拟机时&#xff0c;发现我更改虚拟机的根路径后&#xff0c;nginx只会执行&#xff0c;nginx默认的配置的根目录下的index.php&#xff0c;但是index.html的&#xff0c;…

如何把qq聊天工具加入到网站中

自己建立了一个网站&#xff0c;很想和一些访问者实现互动交流&#xff0c;可是没机会。其实&#xff0c;我们可以通过一些聊天软件来实现&#xff0c;如我们熟悉的QQ和雅虎通就可以&#xff0c;下面我们就来介绍一下怎么样实现。把QQ添加在网站首先我们登陆QQ&#xff0c;在QQ…

网站内容和外链在优化中的占比

随着互联网的发展&#xff0c;很多人对网站优化中外链和内容的着重程度有着摇摆不定的态度&#xff0c;不知该侧重于哪一个。那么在这里就这个问题将和大家做一下探讨。 一、相对于新站来说&#xff0c;自从百度算法的更新后&#xff0c;刚建的新站内容却显得越来越重要了&…

angularjs php电商网站,AngularJs应用:实现类似购物页面的一个小例子(附代码)...

本篇文章给大家带来的内容是关于AngularJs应用&#xff1a;实现类似购物页面的一个小例子(附代码)&#xff0c;有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对你有所帮助。写个小应用&#xff0c;熟练一下AngularJs.。Page Titlevar myAppangular.mo…

屏蔽某些网站软件方法

今年不知道怎么回事&#xff0c;也许是年纪大了&#xff0c;自己的注意力越来越难易集中了&#xff0c;经常在上班的时候开小差&#xff0c;看那些和工作无关的网站&#xff0c;例如微博&#xff0c;知乎&#xff0c;虎嗅、36氪等&#xff0c;一看就十几分钟&#xff0c;开始不…

细谈PHP多语种建站

2019独角兽企业重金招聘Python工程师标准>>> 公司产品网站不可能局限于中文&#xff0c;因为你的网站注册客户也许是美国人&#xff0c;韩国人&#xff0c;西班牙人等&#xff0c;你不得不面临网站多语种解决问题。 其实多语言网站很多&#xff0c;如谷歌网站&#…

网站性能构建

网页性能管理详解 你遇到过性能很差的网页吗&#xff1f; 这种网页响应非常缓慢&#xff0c;占用大量的CPU和内存&#xff0c;浏览起来常常有卡顿&#xff0c;页面的动画效果也不流畅。 你会有什么反应&#xff1f;我猜想&#xff0c;大多数用户会关闭这个页面&#xff0c;改为…

招聘网站需求分析

网站定位&#xff1a;建筑行业专业性盈利性招聘网站。 一、主页设计 用户明确要求以下三点&#xff1a; 1、主色调&#xff1a;蓝色。 2、有不同尺寸的广告位。 3、自动刷新。 其余参照以下网站&#xff1a; 4&#xff0c;个人用户注册页面 5&#xff0c;企业注册页面 二、求职…

php签入html出来的影响seo吗_黑帽seo盈利-黑帽seo转型-seo优化黑帽

大家好&#xff0c;我是逆冬&#xff0c;今天来分享一下实战SEO需要掌握什么样的技能以及SEO知识误区&#xff0c;本篇文章仅代表逆冬本人几年的经验、不见得适合每一个SEOer!下面就让逆冬本人来分析一下实战型SEO到底需要掌握什么技能。第1点&#xff1a;SEO需要不需要熟练掌握…

iis网站根目录不为只读_搭建网站使用香港虚拟主机怎么样?

1. 香港虚拟主机一般是环境已经搭建好了&#xff0c;只需要将网站文件上传至根目录下&#xff0c;目前虚拟主机提供两种网站运行环境&#xff0c;asp.netIISplesk面板&#xff0c;这就需要将网站文件asp程序上传至httpdoc目录下&#xff0c;另外一个运行环境phpapachecpanel面板…

网站被黑检测与网站被黑处理方法

看到此文后&#xff0c;我认为你应该试着通过此文的方法检测一下你的网站是否被黑&#xff0c;因为有可能你的网站被黑了&#xff0c;连你自己都不知道&#xff0c;从下面的图片可以明显的看得出&#xff0c;我的网站也曾被黑过&#xff0c;但这位大神并没有打算处理我的网站&a…

测评网站源码 php,PiPiCMS影视建站程序评测:PHP版的MAXCMS

PiPiCMS皮皮影视采集程序&#xff0c;是一款基于PHPMySQL的影视建站程序&#xff0c;也是一款全新的PHP影视建站程序&#xff0c;作为一个刚推出1个月不到的程序&#xff0c;其功能已经较为完善&#xff0c;更新发布和漏洞修复速度也很快。不足之处是模板和自定义规则还不够充足…

网站性能优化

网站前端的优化还是很重要的&#xff0c;减少请求数&#xff0c;减少页面打开时间都能对页面访问性能提升不少&#xff0c;最近公司就在全站做优化。 由于公司的站已经有两三年的历史了&#xff0c;平时pm提的需求会分给不同的前端人员做&#xff0c;对插件引入和请求外部资源也…

frameset框架在.net网站中的小实现。

一般我们生成网页&#xff0c;为减少代码的开发量&#xff0c;通常将不变的网页部分进行重用。通用为三种方法&#xff1a; 1.frameset框架 2.用户自定义控件 3.母版页&#xff08;消耗资源大&#xff0c;不追叙&#xff09; 通常1&#xff0c;2两种方法常用。 1.frameset框架 …

《大型网站技术架构》学习笔记-01概述

李智慧老师的大型网站架构已经买了两年了&#xff0c;之前大体看过一次&#xff0c;不过还未内化为自己的本领&#xff0c;最近项目空闲&#xff0c;决定尽力掌握这部分的知识&#xff0c;以跟上大师的节奏。今天是儿童节&#xff0c;祝自己和大家心态永远年轻&#xff0c;即使…

网站搭建之PHP环境配置!

不知道是不是今日头条进行了系统升级&#xff0c;标题居然可以写这么长一串文字&#xff1a;“对于一个想在阿里云ECS服务器上搭建网站的小白&#xff1f;解决环境配置成了首要问题&#xff0c;手把手教会PHP环境配置&#xff01;” 不知道有没有和我一样&#xff0c;同在网站建…

一个可以免费去除图片背景的网站

https://www.remove.bg/zh/upload&#xff1a;

网站开启cdn加速的最简单步骤

https://jingyan.baidu.com/article/fedf0737ac414f35ac897704.html https://su.baidu.com/console/website-nosite.html cdn加速是通过一个服务器集群对网站内容建立缓存和镜像&#xff0c;并且通过对网页静态资源的压缩来加快网站的最终访问速度&#xff0c;但是对于大部分的…