Как я могу заблокировать звонки с неизвестных доменов / IP на мой REST API? - PullRequest
0 голосов
/ 12 октября 2019

Я хочу заблокировать вызовы моего Django REST API (www.backend_django.com) из неизвестных источников, например, у меня есть сайт под доменом "www.example.com". Я хочу разрешить только этому сайтубыть в состоянии сделать запрос к моему API.

Для этого я настроил Django-Cors-Headers следующим образом:

DEBUG = False
ALLOWED_HOSTS = ["www.backend_django.com", "backend_django.com"]

CORS_ORIGIN_ALLOW_ALL = False 
CORS_ORIGIN_WHITELIST = (
    'https://backend_django.com',
    'https://www.backend_django.com',
    'https://example.com',
    'https://www.example.com', )

CSRF_TRUSTED_ORIGINS = [
    'backend_django.com',
    'example.com']

MIDDLEWARE = [
    'corsheaders.middleware.CorsMiddleware',
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'social_django.middleware.SocialAuthExceptionMiddleware',
    'whitenoise.middleware.WhiteNoiseMiddleware',
]

Чтобы протестировать его, яЯ позвонил Почтальону, используя мой компьютер, и успешно выполнил запрос к API.

Я что-то настроил в настройках? Как мне это заархивировать?

1 Ответ

1 голос
/ 12 октября 2019

Ограничения CORS не помешают другим хостам делать прямые запросы к вашему API.

Если вам нужны детальные ограничения, вы можете использовать что-то вроде django-iprestrict.

Если вам нужно ограничить целое бэкэнд-приложение, это проще сделать через настройки веб-сервера .htaccess или аналогичные.

...