gpt4 book ai didi

ios - Cordova & CORS (iOS)

转载 作者:行者123 更新时间:2023-11-29 00:40:06 28 4
gpt4 key购买 nike

我最近接触了一个相对较旧的 iOS (iphones) cordova 应用程序,它是大约一年前构建的,以便对其进行调试。

应用程序从服务器查询 API。该服务器是使用 Laravel 构建的,并使用了 laravel-cors。 .

出于特殊原因,此应用的开发人员已将 CORS 服务器端设置为仅在缺少 Origin header 的情况下才接受请求。

有人告诉我,该应用程序在过去一年中运行良好。在调试它时,我注意到当 cordova 应用程序使用 $.ajax 执行请求时,iOS 浏览器将 origin => 'file://' 添加到其 header

现在是我的问题

您知道较新的 iOS 版本有这样的变化吗?我想我不能在客户端做任何事情来绕过它?

将“file://”添加为服务器端接受的来源有多安全?

非常感谢!

最佳答案

服务器接受 null-Origin 的原因并不“特殊”——这就是 CORS 定义工作方式的原因。它旨在防止基于浏览器的 XSS 攻击——浏览器自动发送 Origin header ,以便服务器可以根据它们允许 javascript 调用的域接受或拒绝请求。它旨在作为 JSONP hack 的基于安全标准的继任者,以允许跨源服务器请求,但以受控方式进行。默认情况下,浏览器只需要并允许同源 XHR 和其他类似请求 ( full list )。

对于非浏览器客户端,CORs 是未定义的,因为非浏览器客户端可以设置他们想要的任何 Origin(例如 curl),所以在那些情况下它使得感觉完全离开 Origin header 。

要回答您的部分问题,将 file:// 添加为可接受的源服务器端并不(非常)安全。原因是希望绕过 CORS 保护的攻击者可能会诱骗用户将网页下载到他们的文件系统,然后在他们的浏览器中执行它——从而绕过任何预期的 Origin 限制,因为 file :// 在允许列表中。可能还有其他已知和未知的漏洞利用可以利用接受 file:// 来源的服务器。

您必须根据自己的项目要求评估添加此功能的风险。

关于ios - Cordova & CORS (iOS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39720465/

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