【发布时间】:2018-06-04 13:09:06
【问题描述】:
我正在开发一个 Web 应用程序,前端和各种客户端 (curl & co.) 都可以通过 REST API 访问数据。前端和后端都将在同一个域上。我想用 CORS 保护我的前端,这对我来说是一个两难的选择。如果我将Access-Control-Allow-Origin 设置为*,那么所有其他客户端都可以访问API,但我自己的前端会更加暴露。另一方面,将其设置为我的域会强制客户端提供(假)Origin 标头,并有效地禁止将浏览器用作客户端(通过不同域上的前端)。
这通常是如何解决的?我应该为 API 使用两个不同的端点,一个用于公共访问,另一个用于我的前端?我会很感激一些建议。
【问题讨论】:
-
当您调用同一个函数时,您的客户端(您的前端和其他客户端)是否可以访问不同的功能,或者您是否返回不同的数据(例如:更多数据到您的网站)?
-
不,功能是一样的。当然,每个用户都经过身份验证,因此每个用户的数据不同(但每个用户可以使用我的前端或他们自己的客户端,他们会得到相同的数据)。