允许跨域访问所有API资源是否安全?

时间:2012-08-31 10:15:44

标签: security api http authentication cors

可以通过

验证对API资源的访问权限
  1. 凭据可以由网络浏览器自动发送但不会跨域发送,除非Access-Control-Allow-Credentials设置为“true”(例如,Cookie,HTTP基本/摘要式身份验证,SSL证书) )。

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

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

1 个答案:

答案 0 :(得分:0)

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

但就像CSRF一样,如果客户端必须使用每个请求的令牌进行身份验证且攻击者不知道此令牌,那么他就无法使用类似CSRF的攻击来访问CORS API。 / p>