Google 即将发布其 PC 和操作系统。您将只能使用浏览器技术(即 JavaScript)为该机器编写代码。所以我希望一些工具已经可用。
在 Web 上,JavaScript 具有防止 XSS 攻击的同源策略。在扩展中,它可以自由地四处游荡。
所以问题是:我是否可以编写一个页面或(如果您愿意)一个经过授权(当然是在用户确认后)的在线应用程序来执行它认为需要的所有跨站点请求?我知道当你写一个扩展时这是可能的,但我更喜欢一些不会在用户浏览器中停留太多的东西。 [编辑] 我知道如果您可以控制所涉及的两个站点,则有解决方案。但我想问是否可以访问,例如,google 或 yahoo API:我无法控制的网站。
例如,假设我想为某些 API(REST、JSON、XML:不是脚本标签、跨站点兼容 API)编写前端:我需要将其托管在某个地方(与 API 提供者不同的主机)但是我需要对该域进行不受限制的调用并阅读响应。我了解安全风险,我说的是首先征求用户的许可(就像安装扩展时所做的那样)。
最佳答案
如果您需要让浏览器和服务器同意访问数据,您可以查看 CORS:
http://www.w3.org/TR/cors
https://developer.mozilla.org/en/HTTP_access_control
基本上,您在服务器上为所有请求添加一个 header ,告诉浏览器服务器知道跨源并且可以接受。
它非常简单。有一些陷阱。一个是浏览器和服务器在存在非标准 header 时参与的所谓预检对话框。一些框架会插入这样一个触发此对话框的 header 。这实际上意味着服务器需要将 cors header 添加到所有响应中,包括 OPTIONS header !
如果你稍后提到,你想向用户请求权限以绕过安全限制,你需要查看签名脚本:http://www.mozilla.org/projects/security/components/signed-scripts.html
关于javascript - 是否可以(在用户许可的情况下)以与在扩展程序中相同的方式在网页中使用 JavaScript 执行跨站点请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4488618/