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

问题描述 投票:0回答:1

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

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

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

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

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

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

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

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

提前非常感谢您的回答。

django reactjs security django-rest-framework axios
1个回答
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", ] 

就是这样!

© www.soinside.com 2019 - 2024. All rights reserved.