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

  • 我的浏览器将请求发送到服务器。 ISP会拦截它,而是返回一个JavaScript,该JavaScript会将请求的页面加载到iframe中。
  • 除了原则上令人讨厌之外,这种注入(inject)还破坏了许多标准页面功能。并可能存在安全隐患。

  • 到目前为止,我一直尝试做的是:
  • 使用GreaseMonkey脚本消除注入(inject)的代码并重定向到原始URL。结果:破坏了一些合法的iframe。同样,ISP的代码也将执行,因为GreaseMonkey仅在页面加载后才启动。
  • 使用Privoxy作为本地代理,并设置过滤器以清理注入(inject),并将其替换为普通javascript重定向到原始URL。结果:破坏了一些合法的iframe。 ISP的代码永远不会到达浏览器。

  • 您可以在以下粘贴中查看我一直在努力的GreaseMonkey和Privoxy修复程序:http://pastebin.com/sKQTvgY2 ...以及ISP注入(inject)的样本。

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

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

    最佳答案

    实际上,现在我有一个解决方案:
    ISP代理对浏览器发送的 Accept: header 使用react。

    因此,这是firefox的默认设置:

    接受:text / html,application / xhtml + xml,application / xml; q = 0.9,/; q = 0.8

    现在我们将更改此默认值:

    并将其设置为:接受:* / *

    这是如何为Google Chrome设置header hacker

    将标题设置为您喜欢的任何内容:否IFRAME

    附加/替换选择替换为

    字符串* / *

    并将字符串匹配到。* ,然后单击添加。

    在永久头开关中
    将域设置为。* 并选择您刚创建的规则

    PS:在firefox设置中更改它不能100%正常工作,因为ajax之类的某些请求似乎绕过了它,因此插件是唯一的方法,因为它确实会拦截每个传出的浏览器请求

    那就没有更多的iframe了!!!

    希望这可以帮助!

    10-06 03:51