Django允许的主机

时间:2020-06-20 17:24:08

标签: django

我只想 我的 front.domain.com 访问django API,所以我更新了 settings.py 。 部署后,我可以通过curl和postman访问django API,所以我很困惑,这里有什么我想念的!!

settings.py

DEBUG = False  # deployment

if DEBUG:
    FRONT_OFFICE_URL = 'http://127.0.0.1:4200/'
    ALLOWED_HOSTS = ['*']  # development
    CORS_ORIGIN_ALLOW_ALL = True # development
else:
    FRONT_OFFICE_URL = 'https://front.domaine.com'
    ALLOWED_HOSTS = [FRONT_OFFICE_URL ]  # deployment
    CORS_ORIGIN_WHITELIST = [FRONT_OFFICE_URL]
    CSRF_TRUSTED_ORIGINS = [FRONT_OFFICE_URL ]



INSTALLED_APPS = [
     ...
    'corsheaders',
   ]

MIDDLEWARE = [
    'corsheaders.middleware.CorsMiddleware',
     ...
   ]

1 个答案:

答案 0 :(得分:0)

CORS阻止浏览器访问其他域上的资源。但是其他任何http请求都不会被CORS阻止。如果您需要阻止不是Referer域的请求,可以编写一些中间件来做到这一点,但是要注意,它很容易被伪造-Postman和Curl都可以将Referer标头设置为任何值。

如果您需要在Django中保护对API的请求的安全,则可以使用setting up CSRF protection