javascript - Apache Cordova(Phonegap): is jsonp needed for cross-site scripting?

标签 javascript ajax cordova cross-domain

我刚刚开始使用 Apache Cordova。我有一个库可以调用(通过 ajax)到 soap 服务器。

当我在我的本地计算机上使用 chrome 运行这些程序时,我在尝试调用该服务时遇到跨站点脚本错误。

当我在 iOS 模拟器中使用 Cordova 浏览器运行完全相同的代码时,脚本似乎可以正常访问服务器并且可以正确接收响应数据。

所以我的问题是 Cordova 浏览器如何在没有跨站点脚本权限和 JSONP 的情况下发出这些请求?我注意到的一件事是,当从 iOS 发送请求时,没有“Origin” header 。这是否允许 Cordova 浏览器偷偷绕过跨站点脚本要求?设备上的 node.js 服务器(我相信这就是 Cordova 的工作方式)是否可能正在操纵 header 以允许这样做?

我想避免在我的网站上启用跨站点脚本,所以我认为这个“功能”很好,但我想知道它是否也是一个安全漏洞。

谁有这方面的经验?

最佳答案

默认情况下,Phonegap 允许跨域请求。您可以使用 domain whitelisting 来限制它如果你担心安全。如果您使用的是 jQuery,请设置 $.support.cors = true; 以允许跨域请求。

This page在 Phonegap 中对跨站点脚本安全性进行了分割。

顺便说一句,您可以使用 Google Chrome 的巧妙技巧来允许跨站点脚本,从而在 Ripple 模拟器中测试您的 Phonegap 应用程序,例如:设置命令行参数 --disable-web- Chrome 快捷方式中的安全性,例如

"C:\Program Files\Google\Chrome\Application\chrome.exe" --disable-web-security

关于javascript - Apache Cordova(Phonegap): is jsonp needed for cross-site scripting?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19577370/

相关文章:

azure - 从 cordova 客户端将文件和元数据上传到 azure blob 存储

javascript - $ ('body' ).on ('click' , '.anything' , function(){}) 不适用于 iOS

javascript - 自定义 Handlebars.js 帮助程序不返回 options.fn

javascript - 这样做安全吗? PHP 的 json_encode 和 javascript

javascript - 查询。无法识别克隆的元素

c# - jquery 中出现非法调用错误

javascript - 使 Waypoints jQuery 插件仅在到达底部一次时触发

cordova - 如何检测我是否在 Ionic 2 的浏览器中(本地开发)

javascript - 上传前的图像预览不适用于 + image+_row

java - JSP - 发送到外部站点时如何发送数据并接收响应