gpt4 book ai didi

ios - PhoneGap访问来源限制无效

转载 作者:行者123 更新时间:2023-12-01 17:31:22 25 4
gpt4 key购买 nike

我正在使用Cordova 3.3.0开发iOS应用。在我的config.xml中,我具有以下内容:
<access origin="https://*.kidsintouch.com" />
从理论上讲,这应该阻止我的应用访问试图在该域之外加载的任何资源。

但是,当我在模拟器中或通过Xcode在设备上运行应用程序时,我可以从任何域访问图像。

PhoneGap文档说:

与上述Android平台不同,通过iOS上的href超链接导航到未列入白名单的域根本无法打开该页面。

但是,我仍然可以在应用程序的页面上放置一个外部链接,然后单击它。

当我在Xcode中运行应用程序时,我看到以下控制台输出:

2014-01-02 06:47:16.469 Kids In Touch[10454:60b] Multi-tasking -> Device: YES, App: YES
2014-01-02 06:47:16.480 Kids In Touch[10454:60b] Unlimited access to network resources
2014-01-02 06:47:17.276 Kids In Touch[10454:60b] Resetting plugins due to page load.
2014-01-02 06:47:18.157 Kids In Touch[10454:60b] Finished load of: file:///var/mobile/Applications/8DBB3EE2-A33D-4523-A51F-B72AJ21E5338/Kids%20In%20Touch.app/www/index.html#/intro
2014-01-02 06:47:19.629 Kids In Touch[10454:60b] Resetting plugins due to page load.
Unlimited access to network resources清楚地表明出了什么问题。当我单击放置在应用程序中的伪造的Google链接时,控制台将显示:

2014-01-02 06:47:20.755 Kids In Touch[10454:60b] Finished load of: https://www.google.com/

所以很明显我的access origin限制实际上并没有限制任何东西。

我做错什么了吗?如何防止我的应用访问我提供的域之外的任何资源?

谢谢

最佳答案

我发现了这个问题。由于某种原因,cordova build ios生成的config.xml文件与www文件夹中的文件不同。

似乎有一些默认信息,然后将www/config.xml中的真实信息附加到了它。默认配置信息的顶部是<access origin="*" />

因此,该应用程序被允许所有访问。

我尝试通过运行cordova platform remove ios然后重新运行cordova build ios完全淘汰现有的config.xml。这没有用。每次构建时,一些默认的内容都会添加到实际的config.xml中。

现在解决,直到我更深入地研究是在每次构建后手动编辑config.xml。当我这样做并尝试访问未配置access origin的域时,我得到:

ERROR whitelist rejection: url='http://0.0.0.0:8080/accounts'

因此,白名单工作正常,但是我有一个很糟糕的构建过程需要解决。

更新:有一个platforms/ios/cordova/defaults.xml文件,其中包含XML文件的默认设置。它具有access origin *。我删除了该设置和其他一些设置,现在可以按照www文件夹中的config.xml正确构建。

一切都很好。奇怪的是,这些默认设置被放入我的最终config.xml中。

关于ios - PhoneGap访问来源限制无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20883548/

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