Access-Control-Allow-Origin: * 不安全吗?
Posted
技术标签:
【中文标题】Access-Control-Allow-Origin: * 不安全吗?【英文标题】:Is Access-Control-Allow-Origin: * unsafe? 【发布时间】:2014-01-28 22:47:12 【问题描述】:我的应用程序的后端是一个提供 JSON 内容的 API。我发现需要应用以下响应标头,以便它允许来自任何地方的请求:
Access-Control-Allow-Origin: *
这不安全吗?
您如何创建公共 API 而不会遇到受限制的跨域源策略?我需要允许 GET
和 POST
对我的 API 端点的请求。
【问题讨论】:
【参考方案1】:如果您想公开您的 API,则将 *
用于 Access-Control-Allow-Origin
实际上是必需的。它本质上是不安全的,即使指定域也可能会导致问题,因为任何人都可以很容易地欺骗 Origin 标头绕过您的白名单。
换句话说,使用*
并不比将域列入白名单安全。
相反,您需要确保采取其他安全措施,以确保请求根据需要得到适当授权——尤其是写入请求。
【讨论】:
感谢您的保证。您能否举例说明您所说的其他安全措施是什么意思?你的意思是清理数据库输入吗? @izolate 特别是我在谈论确保请求带有某种由 OAuth 或其他东西提供的身份验证令牌。以上是关于Access-Control-Allow-Origin: * 不安全吗?的主要内容,如果未能解决你的问题,请参考以下文章