网站内容劫持 广告( 常见劫持手段按照劫持的方法,我将劫持分为)
优采云 发布时间: 2022-03-31 02:09网站内容劫持 广告(
常见劫持手段按照劫持的方法,我将劫持分为)
常见的劫持方式
根据劫持方式的不同,我将劫持分为以下两类:
注入js类劫持:将劫持的js代码注入普通页面劫持 iframe类劫持:将普通页面嵌入iframe或添加iframe页面到页面篡改页面类劫持:额外的劫持网页标签出现在普通页面上,导致页面的整体大小发生变化
跳跃劫持
为了获取流量,一些像百度这样需要流量合作的电商或者网站会有自己的联盟系统,通过给予一些奖励来获得导流。例如,百度或电子商务公司将拥有渠道份额。
为了区分哪些是从第三方转过来的,通常会在url地址后面加上source、from等参数,或者在进入页面前传递一个“中间页面”类型的cookie。
这样,当用户输入一个正常的URL时,劫持者就会使其跳转到具有分区或频道号的“中间页面”或在网络层具有频道号的页面。这样,当用户下单或搜索时,劫持者将获得“佣金”。
上面提到的案例还是比较友好的,至少用户一般不会体验到页面变化,有跳钓鱼网站这样的案例,还有不正当竞争的案例:用户输入跳转到or,对方网站我故意让它看起来和百度搜索差不多,当时我也帮法务采集了很多案例。
题外话:在过去的几年里,用户使用百度搜索某些医疗查询,用户立即收到宣传医院的电话。不少用户抱怨,不明真相的人也指责百度。关键词卖给医疗机构,百度就是骗人的。. . 当时我也做了一个项目来加密查询。. .
注入劫持
在页面的传输过程中,内容被网络层“重新处理”。常见的包括:注入js、iframe、篡改页面。
注入js
注入js的方式可以是通过document.write或者直接修改html代码片段,在页面中添加外部js。一些运营商为了增加检测难度,会编造一个不存在的url地址,使其不被过滤或检测。
案例一:运营商会使用自己识别的ip或者域名作为js URL,只能在浙江移动网络下解析,ip也是一样
案例2:运营商很聪明,知道页面可以检测到所有外部js的域名,例如:我只允许/static外部js,其他js会记录反馈;为了不被发现,我遇到一个案例电信会访问一个不存在的地址,比如:/static/abc.js,这个地址直接返回运营商劫持的js代码,请求不会发到百度的服务器。
放置在 iframe 或 iframe 其他页面中
这种情况比较少见,但是一些边缘的网站或者没有内容的垃圾站会使用这种方式。他们通常通过流行的 1) { unknownCode = unknownCode.concat(body.map(function(v) { return v.outerHTML.split('\n').join(''); }).filter(function(str) { if (/^/.test(str)) { return false; } return true; })); } return sendImg(unknownCode, 3); } sendImg([], 0); }
这样除了检测多余的js外链外,还可以检测出篡改页面内容等情况。除了检测域名劫持外,还可以在用户输入查询时通过访问空白页面提前完成DNS解析,还可以用于劫持防御,所谓“三鸟一石”!
劫持防御
最简单粗暴的就是直接上HTTPS,一劳永逸。然后是证据采集,提起诉讼或警告频道作弊者。另外,我们可以继续使用空白页进行劫持检测。
在没有全站https的时期(毕竟全站https涉及的工作量不小),当利用空白页来嗅探当前网络环境下的劫持风险时,那么客户端就会被通过调用客户端的接口来调用,告诉客户端在这个启动期间。使用https不仅可以降低被劫持的风险,还可以通过该页面的小流量测试https数据。以后在https满了之后,老版本的APP就可以通过空白页完全打开到https了。
【本文为51CTO专栏作家“三水清”的原创手稿,授权请通过微信公众号联系作者】
点击这里查看作者的更多好文章