博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
防运营商劫持代码
阅读量:6593 次
发布时间:2019-06-24

本文共 1413 字,大约阅读时间需要 4 分钟。

 

一、什么是运营商劫

什么是运营商:

运营商是指那些提供宽带服务的ISP,包括三大运营商中国电信、中国移动、中国联通,还有一些小运营商,比如长城宽带、歌华有线宽带。运营商提供最最基础的网络服务,掌握着通往用户物理大门的钥匙,目前运营商劫持很普遍。

举个劫持的栗子:

 

 

劫持方式:

运营商比较常见的作恶方式有三种,分别是DNS劫持、HTTP劫持、HTTPS劫持:

DNS劫持:这种劫持会把你重新定位到其它网站,我们所熟悉的钓鱼网站就是这个原理。但是因为它的违法性,现在被严厉的监管起来,已经很少见。

HTTP劫持:虽然DNS劫持已经被监管了起来,但是还有HTTP劫持啊!你DNS解析的域名的IP地址不变,当运营商发现你的是HTTP请求时,就会在里面插入一些奇奇怪怪的广告(比如一些banner、浮标、更有甚把你你的商品位给劫持了 WTF...)并且这种现象十分常见,不信你可以试着随便打开一个网页,仔细看看你就会发现一些小尾巴,这就是被HTTP劫持了。

HTTPS劫持:安全的超文本传输协议,数据加密这也能劫持?答案是肯定的!该劫持方式有两种:

  1. 伪造证书,通过病毒或者其他方式将伪造证书的根证书安装在用户系统中(较少)
  2. 代理也有客户的证书与私钥,或者客户端与代理认证的时候不校验合法性,即可通过代理来与我们服务端进行数据交互(较多)

备注:使用本篇的代码一定会让你查到HTTPS劫持的(前提是使用了https)

二、防运营商劫持

准确的来说是防script、iframe注入型劫持,95%以上是这种劫持方式,因为DNS劫持被严管了。

 

运营商是如何劫持的,网上有很多资料,这里不多逼逼

下面是防劫持代码:

  
防劫持代码测试
防劫持代码测试
 

加入运营商劫持代码后,不在白名单和安全标签(shendun-eddy)内的script或者iframe都会被remove掉。

提示:network内能看到加载了其他非白名单内的script代码,但它们都没有执行

以 为例,代码如下:

;(function(){  console.log('哎哟,我来劫持你了...');})()复制代码

核心功能

MutationObserver()创建并返回一个新的 MutationObserver 它会在指定的DOM发生变化时被调用。

具体参数和用法传送门:

兼容性

 

所有浏览器的兼容性是92.79%,手机端的兼容性更高,代码中加了保护所以放心使用吧!

 

三、总结

目前运营商劫持率大约是3% ~ 25%,它们无处不在。

为了还用户一个干净安全的浏览环境,我们需要做好预防措施

  1. 全站https,能防一部分
  2. 加入防运营商劫持代码,能防大部分注入型劫持
  3. 记录Log,记录证据,向工信部投诉
 
很实用,拿过来以便备用,转载自掘金https://juejin.im/post/5bea7eb4f265da612859a9e4

转载于:https://www.cnblogs.com/wuyuchao/p/9983697.html

你可能感兴趣的文章
v140平台工具集与v110工具集选择
查看>>
EF6+Sqlite连接字符串的动态设置
查看>>
下拉加载更多
查看>>
您是哪一种类型的老板?
查看>>
SQL SERVER 2012 只能识别20个CPU的问题
查看>>
设计模式(十)外观模式
查看>>
C/C++语言中Static的作用详述
查看>>
[Android Samples视频系列之ApiDemos] App-Activity-Recreate
查看>>
ASP开发基础
查看>>
MYSQL性能调优
查看>>
LVM自动扩容
查看>>
笔记整理4
查看>>
idea文件折叠显示出来配置
查看>>
SQLSERVER中的非工作时间不得插入数据的触发器的实现
查看>>
如何写出兼容大部分浏览器的CSS 代码
查看>>
第二阶段冲刺第八天,6月7日。
查看>>
java的左移位(<<)和右移位(>>)和无符号右移(>>>)
查看>>
struts2 action 返回类型分析
查看>>
【原创】FPGA开发手记(三) PS/2键盘
查看>>
linux统计多个文件大小总和
查看>>