Vin*_*els 42 api mobile cors cordova hybrid-mobile-app
我们需要保持我们的API服务器安全性与CORS限制:
Access-Control-Allow-Origin : http://myonlinesite.com
Run Code Online (Sandbox Code Playgroud)
但我们还需要此API才能访问我们的移动应用(Android + iOs).
我发现的所有解决方案都告诉我允许所有来源:*但这对我们的API来说是一个很大的安全性失败.
我们正在使用Cordova构建我们的应用程序,WebView为本地文件提供服务,因此发送:origin: null,用于其所有http(s)请求.所以我们正在考虑增加null允许的来源.它更好,因为它会阻止所有其他网站试图获取我们的API,但它将允许任何移动应用程序获取它...
有没有更有趣的解决方案呢?
谢谢!
sid*_*ker 21
所以我们考虑将null添加到允许的原点.它更好,因为它会阻止所有其他网站试图获取我们的API,但它将允许任何移动应用程序获取它...
好吧,如果你这样做,那么你允许来自任何非http/https源的JavaScript代码的请求- 包括从一个file://或甚至data:URL 运行任何东西的任何人.
因此,如果您出于"安全"原因使用限制性CORS策略,那么使用Access-Control-Allow-Origin: null标头发送响应听起来是个糟糕的主意.
我们需要保持我们的API服务器安全性与CORS限制:我找到的所有解决方案告诉我允许所有来源:
*,但这对我们的API来说是一个很大的安全性失败.
您没有解释为什么您已经确定它将是一个安全性故障,或者为什么您需要有一个限制性的CORS策略.但除非(1)您的Web服务器在Intranet中运行或在其他类型的防火墙后面运行,并且(2)仅通过IP身份验证限制对资源的访问,因此您无法通过使用限制性CORS策略获得任何收益.要引用规范:
基本安全的CORS协议设置
对于通过IP身份验证或防火墙保护数据的资源(遗憾的是相对常见),使用CORS协议是不安全的.(这就是为什么必须发明CORS协议的原因.)
但是,否则使用以下标头是安全的:
Run Code Online (Sandbox Code Playgroud)Access-Control-Allow-Origin: *即使资源基于cookie或HTTP身份验证公开了其他信息,使用上述标头也不会显示它.它将与API共享资源
XMLHttpRequest,就像它已经curl和它共享一样wget.因此,换句话说,如果一资源不能从连接到使用网络的随机设备访问
curl和wget上述报头不被包括在内.但是,如果可以访问它,那么这样做是完全可以的.
| 归档时间: |
|
| 查看次数: |
21226 次 |
| 最近记录: |