1

对 API 资源的访问可以通过以下方式进行身份验证

  1. 可以由 Web 浏览器自动发送但不会跨域发送的凭据,除非 Access-Control-Allow-Credentials 设置为“true”(例如 cookie、HTTP Basic/Digest 身份验证、SSL 证书)。

  2. 一个秘密令牌,无论是在 HTTP 标头中还是作为 URL 中的查询参数,必须由客户端手动设置(例如 OAuth 访问令牌)。

考虑到这一点,在 API 中的所有资源上设置“Access-Control-Allow-Origin: *”总是安全的吗?

4

1 回答 1

0

如果在任何时候,在他控制的域上执行 JavaScript 的攻击者可以在不提供令牌的情况下获取数据或执行状态更改,那么您就有了漏洞。该攻击与CSRF非常相似,只是它拓宽了数据过滤的范围。

但是就像 CSRF 一样,如果客户端必须为每个请求使用一个令牌进行身份验证,而攻击者不知道这个令牌,那么他就无法通过类似 CSRF 的攻击访问CORS API。

于 2012-08-31T16:41:22.863 回答