Django Rest + React:如何限制请求的域来源

Gar*_*gos 7 security django django-rest-framework reactjs axios

我目前正在构建一个网络应用程序。

  • 我的前端是使用React和Axios开发的(用于API调用请求)。它直接由 Nginx 在app.mydomain.com上提供服务

  • 我的后端是使用 Django 和Django Rest开发的。它在api.mydomain.com上与 Nginx 和 Gunicorn 一起提供。它只为 API 端点提供服务。

所以前端和后端是分离的。

我希望只有我的前端 (app.mydomain.com)能够向我的 Django Rest 后端发出 API 请求

我想阻止任何其他域、任何客户端(例如 postman、insomnia、curl 或任何脚本)向我的后端发出 API 请求

我已经在 Django Rest 中设置了 CORS。但是,我仍然可以使用curl 或任何其他客户端向后端发出请求。

您知道我可以做些什么来实现这一目标吗?

预先非常感谢您的回答。

小智 0

脚步 :

1.python -m pip install django-cors-headers

2.INSTALLED_APPS = [ ..., "corsheaders", ..., ] #add it to your installed apps:

3.#添加一个中间件类来监听响应,

MIDDLEWARE = [ ..., "corsheaders.middleware.CorsMiddleware", "django.middleware.common.CommonMiddleware", ..., ]

4.CORS_ALLOWED_ORIGINS = [ "https://api.mydomain.com", ]

就是这样!