不使用cookie(RESTAPI)时是否需要细粒度COR

不使用cookie(RESTAPI)时是否需要细粒度COR,rest,cors,Rest,Cors,直到跨来源资源共享的目的之一——CORS(如果不是唯一的话)是为特定网站保护保存在浏览器中的数据。从这个角度来看,这只适用于HTTP Cookies。因此,如果我在后端实现CORS,我必须列出特定的允许域,而不是*,因为这将有效地创建安全漏洞 但如果我的服务根本不使用浏览器cookie呢?我有一个RESTAPI,授权是通过传递一个特殊的头来完成的,不以任何方式依赖cookie。在这种情况下,允许在后端使用allow Origin=*的任何CORS请求是否安全?是相关的。但如果您使用的是任何形式的

直到跨来源资源共享的目的之一——CORS(如果不是唯一的话)是为特定网站保护保存在浏览器中的数据。从这个角度来看,这只适用于HTTP Cookies。因此,如果我在后端实现CORS,我必须列出特定的允许域,而不是*,因为这将有效地创建安全漏洞


但如果我的服务根本不使用浏览器cookie呢?我有一个RESTAPI,授权是通过传递一个特殊的头来完成的,不以任何方式依赖cookie。在这种情况下,允许在后端使用
allow Origin=*
的任何CORS请求是否安全?

是相关的。但如果您使用的是任何形式的凭据-甚至是浏览器不承认为凭据形式的自定义头-那么原则上,这与包含cookie的请求基本上仍然处于同一风险级别。我想值得注意的是,对于跨来源请求,默认情况下,浏览器也不会发送授权标头。因此,严格来说,风险不仅仅在于饼干。请看,上面说,“一般来说,共享响应和允许具有凭据的请求都是相当不安全的,必须非常小心,以避免出现令人困惑的代理问题。”@sideshowbarker谢谢,这确实是相关的。但它还表示,当cookie或HTTP授权时,甚至可以安全地使用
访问控制允许源代码:
,因为浏览器不会发送它们,除非另外存在
访问控制允许凭据
标头。我认为浏览器在默认情况下会在您请求已经访问过的资源时添加相关的cookie和授权头,但没有理由对自定义头也这样做。这就是为什么我认为在这方面使用自定义头进行授权是安全的。