gpt4 book ai didi

android - PhoneGap 和跨域调用

转载 作者:行者123 更新时间:2023-11-30 03:44:37 25 4
gpt4 key购买 nike

我一直在为客户进行安全审查,并在 config.xml 中遇到了这一行它是适用于 Android 设备的 phonegap 应用程序

<access origin=".*"/>

如果它只是 origin=* 我会知道这意味着它可以访问任何其他站点。但是 .* 是什么意思?和*一样吗​​?

谢谢

最佳答案

来自 Cordova Android source code :

private void _addWhiteListEntry(String origin, boolean subdomains) {
try {
// Unlimited access to network resources
if (origin.compareTo("*") == 0) {
LOG.d(TAG, "Unlimited access to network resources");
this.whiteList.add(Pattern.compile(".*"));
} else { // specific access
// check if subdomains should be included
// TODO: we should not add more domains if * has already been added
if (subdomains) {
// XXX making it stupid friendly for people who forget to include protocol/SSL
if (origin.startsWith("http")) {
this.whiteList.add(Pattern.compile(origin.replaceFirst("https?://", "^https?://(.*\\.)?")));
} else {
this.whiteList.add(Pattern.compile("^https?://(.*\\.)?" + origin));
}
LOG.d(TAG, "Origin to allow with subdomains: %s", origin);
} else {
// XXX making it stupid friendly for people who forget to include protocol/SSL
if (origin.startsWith("http")) {
this.whiteList.add(Pattern.compile(origin.replaceFirst("https?://", "^https?://")));
} else {
this.whiteList.add(Pattern.compile("^https?://" + origin));
}
LOG.d(TAG, "Origin to allow: %s", origin);
}
}
} catch (Exception e) {
LOG.d(TAG, "Failed to add origin %s", origin);
}
}

很明显,如果不完全是 *,他们会将所有内容都视为正则表达式。相信这种行为可能不是一个好主意,因为它不是 documented而不是在目标 W3C Widget Access 中规范。 (我认为这甚至可能不是故意的。)

但是 .* 仍在 PhoneGap 2.5.0 项目模板中使用,所以现在没问题,只要您使用一个版本的 PhoneGap。

关于android - PhoneGap 和跨域调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15187247/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com