仅允许个人网站进行 REST api 访问(不允许其他请求服务)

Allow REST api access only by personal webiste (not other requests servcices)

我知道之前有人问过这个问题,但我没有找到解决我问题的可行方法,我在我的 Django 应用程序中实现了 CORS 以限制域访问和还使用 CSRF 令牌针对不安全的 HTTP 方法进行安全数据传输,但我仍然可以通过邮递员或其他 HTTP 服务向 API 发出请求,如何才能我避免那个?

注意: 我的应用程序 不使用具有 oAuth 系统 等的用户,它向数据库发出 POST 请求以获得令牌(特定于应用程序术语)提出请求的人,但我只希望我的网站提出这样的请求,不再需要,怎么办?

Cross-origin resource sharing (CORS) is a mechanism that allows restricted resources on a web page to be requested from another domain outside the domain from which the first resource was served.

您可以将 CORS 视为在前端请求后台运行的标准,仅由网络浏览器执行.因此,如果您想使用不是浏览器的 HTTP 客户端进行请求,例如 curl,您根本不会通过 CORS 验证。

所以底线是: 如果您想阻止其他非浏览器 HTTP 客户端向您的 API 发出请求,您需要自己想办法。

例如:

创建一个 middleware 来检查传入的请求是否来自您在应用设置中的可信来源列表。