【发布时间】:2010-06-22 12:39:39
【问题描述】:
我正在寻找一个浏览器扩展程序(Firefox、Chrome),允许替换实时网站上的 Javascript 文件以进行一些测试/黑客攻击。
基本上,它应该采用一个 URL 并加载另一个 URL(本地或 HTTP 开发服务器上)。
有什么想法吗?
【问题讨论】:
标签: javascript browser
我正在寻找一个浏览器扩展程序(Firefox、Chrome),允许替换实时网站上的 Javascript 文件以进行一些测试/黑客攻击。
基本上,它应该采用一个 URL 并加载另一个 URL(本地或 HTTP 开发服务器上)。
有什么想法吗?
【问题讨论】:
标签: javascript browser
试试http://www.fiddler2.com/fiddler2/version.asp
它可以做到这一点以及更多。但它不是浏览器扩展。
【讨论】:
我认为这是个人代理的任务。您可以在代理上嗅探流量并应用规则来修改请求/内容
【讨论】:
Opera browser 具有类似的功能:
Ctrl+U)。Ctrl+R)。要编辑链接资源(如 javascript 或 CSS 文件),请使用以下方法:
Ctrl+U)。Ctrl+R)。Ctrl+R) 的选项卡。【讨论】:
替代方案:
这可能不是您问题的“确切”答案,但我几乎可以肯定其中一个会做您想做的事情。
【讨论】:
不确定这是否有帮助,但我刚刚遇到了一个名为 Resource Override 的 chrome 插件,听起来它做了类似的事情。我正在尝试其他人提到的提琴手,但我想我也会在某个时候尝试这个。 https://chrome.google.com/webstore/detail/resource-override/pkoacgokdfckfpndoffpifphamojphii?hl=en
【讨论】:
您可以拦截和阻止浏览器中的请求。例如,在 Chrome 中,您可以使用 beforeload 事件检查它是否是 JS(event.target 是脚本标记或 event.url 以 .js 结尾)调用 event.preventDefault(),然后加载您自己的脚本。
我很确定在 FF 中也有类似的方法。
【讨论】:
有https everywhere which lets you define rules for url rewrites。这应该适用于所有请求,包括脚本请求。
Tamper 数据可能会完成这项工作,但我不知道您可以将其设置为多么自动化/永久。
还有一个扩展名为redirector。我没有测试那个。它可能仅适用于地址栏。
更新:
这很不幸。在这种情况下,代理可能是您唯一的方法。那么作为代理的 Firefox 扩展呢,例如 Foxyproxy
【讨论】:
ColBeseder 正确地提出了 Fiddler (http://www.fiddler2.com/fiddler2/version.asp) 作为您问题的解决方案。
Fiddler 也完全能够处理和解密 HTTPS 流量 - 请参阅页面上的文档以了解如何配置它。
要直接回答 OP 问题,您可以使用 Fiddler 中的自动回复功能来破解您的生产 JS 进行测试。
在 Fiddler 中启用自动回复选项卡,确保选中不匹配请求的通过,输入要替换为模式的 JS 文件的 URL。从本地文件系统中选择响应文件,然后前往城镇!
有关示例,请参阅http://yuiblog.com/blog/2008/06/27/fiddler/(文章底部最相关)。
【讨论】:
您可能应该考虑robohydra,因为它是专门为您的情况而开发的。他们还不支持 https,但他们愿意在未来包含它。
【讨论】:
免责声明:我是该软件的作者 :-)
可能更适合您的用例的另一种方法是使用基于 RoboHydra 的开发代理。这里的想法是您希望将所有 Javascript 文件保留在您的机器中,并简单地将另一台服务器用作后端。它非常适合例如。不想在他们的机器上安装整个后端的前端开发人员。
您可以在 http://robohydra.org/ 上查看文档、教程等,并在 http://dev.opera.com/articles/view/robohydra-a-new-testing-tool-for-client-server-interactions/ 上查看准确描述该用例的文章。
但是,到目前为止,它还不能代理 HTTPS URL,但这应该是一个微不足道的改变,我打算很快做。
【讨论】:
Greasemonkey 怎么样? 这应该是您正在寻找的东西!
【讨论】:
User JavaScript is loaded and executed as if it were a part of the page that you visit. It is run immediately before the first script on the page,您可以阻止脚本执行:Controlling what scripts are allowed to run on a page, and what they are allowed to do