『哈希值』遇到CDN劫持怎么办?SRI教你一绝永患( 二 )


『哈希值』遇到CDN劫持怎么办?SRI教你一绝永患
本文插图
然后将 loadScriptError 和 loadScriptSuccess 两个方法注入到 html 中 , 可以使用 inline 的方式 。
如何判断发生 CDN 劫持?
前面说到 script 加载失败可能是由于多种原因造成的 , 那如何是否判断发生了 CDN 劫持呢?
方法就是再请求一次数据 , 比较两次得到文件的内容(当然不必全部比较) , 如果内容不一致 , 就可以得出结论了 。
『哈希值』遇到CDN劫持怎么办?SRI教你一绝永患
本文插图
这里为什么只比较前 1000 个字符?因为通常 CDN 劫持者会在 js 文件最前面注入一些代码来达到他们的目的 , 注入中间代码需要 AST 解析 , 成本较高 , 所以比较全部字符串没有意义 。 如果你还是有顾虑的话 , 可以加上后 n 个字符的比较 。
好了 , 这期就说这么些了 , 下期我们再说说有关于主页配置篡改、hosts劫持、进程Hook、启动劫持、LSP注入、浏览器插件劫持、HTTP代理过滤、内核数据包劫持、bootkit等等一些其他的流量劫持方式 。


推荐阅读