Django Разрешенные хосты - PullRequest
0 голосов
/ 20 июня 2020

Я хочу, чтобы только мой front.domain.com имел доступ к django API, поэтому я обновил свой settings.py . Когда я развернул, я могу получить доступ к django API через curl и почтальон, так что я запутался, вот что мне не хватает!

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 голосов
/ 20 июня 2020

CORS предотвращает доступ браузеров к ресурсам в других доменах. Но любой другой HTTP-запрос не будет заблокирован CORS. Если вам нужно заблокировать запросы, где Referer не является вашим доменом, вы можете написать для этого промежуточное программное обеспечение, но будьте осторожны, его можно легко подделать - Postman и Curl позволяют вам установить заголовок Referer на любое значение.

Если вам нужно защитить запросы к API в Django, настройка защиты CSRF - это способ go.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...