如何阻止未知 domains/IP 对我的 REST API 的调用?
How can I block calls from unknown domains/IP to my REST API?
我想阻止来自未知来源的对我的 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 的请求。
我是不是在设置里设置了什么不好的地方?我该如何存档?
CORS 限制不会阻止其他主机向您的 API 发出直接请求。
如果您需要精细的限制,那么您可以使用类似 django-iprestrict 的东西。
如果您需要限制整个后端应用程序,通过网络服务器设置 .htaccess 或类似文件会更容易。
我想阻止来自未知来源的对我的 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 的请求。
我是不是在设置里设置了什么不好的地方?我该如何存档?
CORS 限制不会阻止其他主机向您的 API 发出直接请求。
如果您需要精细的限制,那么您可以使用类似 django-iprestrict 的东西。
如果您需要限制整个后端应用程序,通过网络服务器设置 .htaccess 或类似文件会更容易。