消除:ISP使用iframe脚本为广告注入页面

时间:2015-05-28 11:34:14

标签: javascript iframe proxy code-injection network-security

所以我的ISP(Smartfren;印度尼西亚)决定开始使用iframing脚本注入所有非SSL页面,允许他们在页面中插入广告。以下是发生的事情:

  1. 我的浏览器向服务器发送请求。 ISP拦截它,而是返回一个javascript,在iframe中加载请求的页面。

  2. 除了原则上令人讨厌之外,这种注入还会打破任何数量的标准页面功能;并提出可能的安全隐患。

  3. 到目前为止我试图做的事情:

    1. 使用GreaseMonkey脚本来删除注入的代码并重定向到原始URL。结果:打破一些合法的iframe。此外,ISP的代码被执行,因为GreaseMonkey只在页面加载后启动。

    2. 将Privoxy用于本地代理并设置过滤器以清理注入并将其替换为原始URL的普通javascript重定向。结果:打破一些合法的iframe。 ISP的代码永远不会进入浏览器。

    3. 您可以通过以下粘贴查看我正在处理的GreaseMonkey和Privoxy修补程序:http://pastebin.com/sKQTvgY2 ...以及ISP注入的示例。

      理想情况下,我可以将Privoxy配置为在检测到更改时立即重新发送请求,而不是过滤掉注入的JS并将其替换为JS重定向到原始URL。 (当没有延迟重新发送相同的请求时,ISP注入被关闭。)我还没弄明白如何实现这一点。我相信它可以解决iframe破解问题。

      我知道我可以切换到VPN或使用Tor浏览器。 (或者改变ISP。)我希望有另一种方式。关于如何消除这种滋扰的任何建议?

3 个答案:

答案 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 我正在使用这种方法

  1. 查找包含iframe代码的资源(使用chrome dev工具) iframe js
  2. 使用代理或主机文件阻止网址
  3. 我正在使用linux,所以我编辑了我的主机文件 /etc/hosts 示例:

    127.0.0.1 ibnads.xl.co.id

答案 2 :(得分:0)

使用DNSCrypt是最佳解决方案