运营商劫持https?oh shit!

最近遇到微信图文消息被联通劫持的事情,着实被震惊到了。但其实平时也有用户反馈中国移动劫持的事情,从反馈的量来说,在手机端,联通和移动劫持的最多,在PC端劫持最疯狂的电信,在手机端倒是『安分』好多。

具体是怎么劫持的呢?

为了防止被劫持,微信给图文消息全量了https——图文消息都是内容类的,所以这里也没必要给一个『保护用户隐私安全』的理由。

iOS中safari/webview允许https执行http的资源,比如js。而chrome会将此类资源block掉。

运营商劫持了非https页面的某个js,这个js的角色是公用组件,在https页面中也有用到。

于是https的页面也变相被劫持了!

解决方案:

  • 全网https
  • 全网https
  • 全网https

嗯,其实可以顺便部署http/2的,一步到位了。

https虽然不是绝对安全,但运营商要想劫持也不是这么简单的事情,但为了防止劫持而花大力气去部署https,可能不少人觉得不值吧,但牵涉到『用户体验』和『用户隐私保护』,我认为做任何事情都是值得的。

另外,其实发现现在运营商花了大力气来搞劫持,不过只是推送你的流量套餐信息,竟然不是强插广告!太TM用心良苦了!