我刚刚开始使用 Apache Cordova。我有一个库可以(通过ajax)调用soap 服务器。
当我在本地计算机上的 Chrome 中运行这些程序时,在尝试调用该服务时会出现跨站点脚本错误。
当我在 iOS 模拟器中使用 Cordova 浏览器运行相同的代码时,脚本似乎可以正常命中服务器,并且可以正确接收响应数据。
所以我的问题是 Cordova 浏览器如何能够在没有跨站点脚本权限和 JSONP 的情况下发出这些请求?我注意到的一件事是,当从 iOS 发送请求时,没有“Origin”标头。这是否允许 Cordova 浏览器秘密规避跨站点脚本要求?设备上的 Node.js 服务器(我相信这就是 Cordova 的工作方式)是否可能正在操纵标头以允许这样做?
我想避免在我的网站上启用跨站点脚本,所以我认为这个“功能”很好,但我想知道这是否也是一个安全漏洞。
有人有这方面的经验吗?
默认情况下,Phonegap 允许跨域请求。您可以使用以下方式限制此操作域名白名单 http://docs.phonegap.com/en/3.0.0/guide_appdev_whitelist_index.md.html如果您担心安全。如果您使用 jQuery,请设置$.support.cors = true;
允许跨域请求。
这一页 https://github.com/phonegap/phonegap/wiki/Platform-Security#cross-site-scripting-xss对 Phonegap 中的跨站点脚本安全性进行了详细分析。
顺便说一句,您可以在 Google Chrome 中使用一个巧妙的技巧来允许跨站点脚本编写,从而在 Ripple 模拟器中测试您的 Phonegap 应用程序,例如:设置命令行参数--disable-web-security
在 Chrome 的快捷方式中,例如
"C:\Program Files\Google\Chrome\Application\chrome.exe" --disable-web-security
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)