我需要一个 javascript 表单填充器,可以绕过大多数现代浏览器实施的“同源策略”。
我编写了一个脚本,用于在新浏览器中打开所需的网站/表单。使用 window.open 方法返回的处理程序,我想使用 theWindowHandler.document.getElementById('inputx') 检索输入并填充它们(访问被拒绝)。
是否可以使用 Isapi Rewrite 来解决这个问题(官方网站) 在 IIS 6 中充当反向代理吗?如果是这样,我该如何配置反向代理?
这是我取得的进展:
RewriteEngine on
RewriteLogLevel 9
LogLevel debug
RewriteRule CarChecker https://the.actualcarchecker.com/CheckCar.aspx$1 [NC,P]
重写成功了,http://ourcompany.com/ourapplication/CarChecker,如日志所示。从我们公司站点内部,我可以运行 carchecker,就像在我们自己的域中一样。只是,“同源策略”仍然有效。
问候,
米歇尔
答案1
虽然在细节上仍然有点模糊(例如哪个浏览器,哪个域托管对 window.open 的原始调用以及新域是什么)...
你可能从错误的角度来处理这个问题。虽然理论上可以使用反向代理来帮助解决跨域问题,但要做到这一点会遇到很多问题。你将要解决的内容被修改和其他你甚至无法想象的问题,这些问题层出不穷。而且,以这种方式尝试绕过浏览器安全性通常是一个坏主意。我强烈建议你选择以下两条路线之一:
1)购买一些软件,例如RoboForm它作为浏览器的附加组件发挥作用,并且不仅限于浏览器内部的安全模型。
2)重写一些 JavaScript 逻辑书签小工具和JSON协议请求。查看“Google Reader 中的注释”或“Evernote 中的注释”书签小程序(或 chrome 扩展程序)如何执行此操作 - 这基本上就是您需要执行的操作。