use*_*521 16 android google-chrome jquery-mobile phonegap-plugins cordova
(最近6个小时一直在这里)我正在尝试制作一个phonegap/Cordova应用程序.我无法通过Android模拟器进行Ajax调用(API ver 22,Android> 4.4).Ajax调用适用于Firefox桌面,但即使在Chrome浏览器上也会失败(与模拟器上的情况相同)
cordova --version 5.0.0
码:
$.ajax({
url: serverUrl,
type: 'GET',
contentType: "application/json",
async: true,
dataType: 'jsonp',
callback: 'callback',
jsonpCallback: 'yourcallback',
crossDomain: true,
success: function (result) {
$("#message").html("location sent");
},
error: function (request, error) {
alert('Error ' + error);
}
});
Run Code Online (Sandbox Code Playgroud)
我看到的错误是:
在chrome远程调试器上:
拒绝连接到' http: //10:20.2.2/test/ getLocation.php ',因为它违反了以下内容安全策略指令:"default-src'self'data:gap:https://ssl.gstatic.com '不安全-EVAL'".请注意,'connect-src'未显式设置,因此'default-src'用作后备.
我在博客和帖子上看到了各种设置,但没有用.把一些在这里删除通常的嫌疑人.
$.support.cors = true;
$.mobile.allowCrossDomainPages = true;
Run Code Online (Sandbox Code Playgroud)
AppManifest可以访问Internet:
<uses-permission android:name="android.permission.INTERNET" />
Run Code Online (Sandbox Code Playgroud)
config.xml文件:
<access origin="*" /> (have tried all variation, with putting actual server name here like "http://10.0.2.2" ).
Run Code Online (Sandbox Code Playgroud)
真的需要你的帮助.累了又疼了:(
use*_*521 25
我的错...
我正在使用Phonegap示例html template..which有以下元标记阻止XSS.
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">
Run Code Online (Sandbox Code Playgroud)
我不确定将这些东西放在一个示例代码中,是对还是不对..因为我浪费了我的2天.
dev*_*evz 10
出于安全原因,您应该保留内容安全策略:
关键的安全机制是同源策略.这限制了来自原始A的文档或脚本如何与来自源B的资源交互.这意味着URL http://store.comany.com/dir/page.html可以访问以下URL:
但不是以下内容:
(更多信息:https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy)
但是,攻击者可以通过跨站点脚本(XSS)绕过此策略
要防止XSS和数据注入攻击,您可以使用内容安全策略(从此处):
内容安全策略(CSP)是一个增加的安全层,可帮助检测和缓解某些类型的攻击,包括跨站点脚本(XSS)和数据注入攻击.这些攻击用于从数据窃取到站点破坏或恶意软件分发的所有内容.CSP旨在完全向后兼容; 不支持它的浏览器仍然可以与实现它的服务器一起使用,反之亦然.不支持CSP的浏览器只是忽略它,像往常一样运行,默认为Web内容的标准同源策略.如果站点未提供CSP标头,则浏览器同样使用标准的同源策略.
实际上,这已经在示例代码中了.但也许赞扬会很好=).您确实应该保留此配置以提高安全性.
在您的情况下,您必须将配置更改为:
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *; connect-src 'self' http://10.0.2.2">
Run Code Online (Sandbox Code Playgroud)
connect-src限制了您可以连接的源(通过XHR,WebSockets和EventSource).你必须把'self'(对于设备上的脚本)和远程URL(例如http://10.0.2.2)放在这里