在API上启用CORS

Enabling CORS on an API

本文关键字:CORS 启用 API      更新时间:2023-09-26

我们目前正在开发一种API,以允许客户和经销商购买和管理我们的产品。

目前,我们没有在服务器上启用CORS。这阻止了js(例如Angularjs)访问API。

我想启用这些头,这样客户就可以通过浏览器中的js访问我们的API。

在通配符上实现CORS以允许在本质上将是公共API的情况下实现CORS的风险是什么?这是否使我们的API本质上更容易被滥用或其他什么?

Access-Control-Allow-Origin: *

在向我们这些老派后端开发人员介绍这一论点时,我还应该考虑其他什么吗?谢谢

给定:

  • 爱丽丝,一个经营网站的人
  • Bob,一个使用Alice网站的人
  • Mallory,一个经营恶意网站的人

如果您使用CORS从浏览器启用对API的全局访问,则:

如果Bob被诱骗访问Mallory的网站,那么Mallory网站可以指示Bob的浏览器从Alice的网站获取数据并将其提供给Mallory。

如果Bob登录到Alice的网站,则浏览器将发送验证为Bob所需的任何cookie。

Mallory可以访问Alice网站上任何本应是Alice和Bob私人的数据(如Bob的订单历史、医疗记录或Alice网站存储的其他数据)。

如果通过API提供的数据仅由公共信息组成,那么使其全局可访问就没有问题。如果它包含个人数据,那么您需要考虑使用一些次要的身份验证方法。

如果您的API是公共的,我看不到任何风险。。(即使是带有身份验证的私有API)简单地说,人们将能够从自己的域中调用它。

但您可以将其限制为一个域,而不必强制使用通配符。