所以我的ISP(Smartfren;印度尼西亚)决定开始使用iframing脚本注入所有非SSL页面,允许他们在页面中插入广告。以下是发生的事情:
我的浏览器向服务器发送请求。 ISP拦截它,而是返回一个javascript,在iframe中加载请求的页面。
除了原则上令人讨厌之外,这种注入还会打破任何数量的标准页面功能;并提出可能的安全隐患。
到目前为止我试图做的事情:
使用GreaseMonkey脚本来删除注入的代码并重定向到原始URL。结果:打破一些合法的iframe。此外,ISP的代码被执行,因为GreaseMonkey只在页面加载后启动。
将Privoxy用于本地代理并设置过滤器以清理注入并将其替换为原始URL的普通javascript重定向。结果:打破一些合法的iframe。 ISP的代码永远不会进入浏览器。
您可以通过以下粘贴查看我正在处理的GreaseMonkey和Privoxy修补程序:http://pastebin.com/sKQTvgY2 ...以及ISP注入的示例。
理想情况下,我可以将Privoxy配置为在检测到更改时立即重新发送请求,而不是过滤掉注入的JS并将其替换为JS重定向到原始URL。 (当没有延迟重新发送相同的请求时,ISP注入被关闭。)我还没弄明白如何实现这一点。我相信它可以解决iframe破解问题。
我知道我可以切换到VPN或使用Tor浏览器。 (或者改变ISP。)我希望有另一种方式。关于如何消除这种滋扰的任何建议?
答案 0 :(得分:5)
实际上现在我有一个解决方案: ISP代理会对浏览器发送的 Accept:标头做出反应。
所以这是firefox的默认值:
接受:text / html,application / xhtml + xml,application / xml; q = 0.9, / ; q = 0.8
现在我们将更改此默认值:
并将其设置为:接受:* / *
以下是如何为Google Chrome设置header hacker
将标题设置为您喜欢的任何内容: NO IFRAME
追加/替换选择替换为
String * / *
将字符串与。* 匹配,然后点击添加。
在永久标题开关中 将域设置为。* ,然后选择刚刚创建的规则
PS:在firefox设置中更改它不能100%工作,因为像ajax这样的请求似乎绕过它所以插件是唯一的方法,因为它实际上拦截了每个传出的浏览器请求那不再是iframe !!!
希望这有帮助!
答案 1 :(得分:1)
更新:使用DNSCrypt是最佳解决方案
OLD ANSWER 我正在使用这种方法
答案 2 :(得分:0)
使用DNSCrypt是最佳解决方案