Django CORS允许来自非允许来源的请求

时间:2020-09-10 19:57:27

标签: python django django-rest-framework cors django-cors-headers

我运行的Django CORS带有如下所示的允许的来源列表:

CORS_ORIGIN_ALLOW_ALL = False
CORS_ALLOWED_ORIGINS = [
    'http://127.0.0.1:8000',
    'http://127.0.0.1:3000',
]

但是,如果我在终端中使用Python的requests库进行请求,它仍然允许该请求。我什至尝试只允许来自https://google.com的请求,但仍然允许我使用我的API。

这是为什么? (我仍然是Django的新手,如果这是一个不好的问题,敬请原谅)

还有其他一些设置

已安装的应用程序:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # internal
    'my_app1',
    'my_app2',
    'my_app3',
    # third party
    'rest_framework',
    'corsheaders',
    'debug_toolbar',
]

中间件:

MIDDLEWARE = [
    'corsheaders.middleware.CorsMiddleware',
    'debug_toolbar.middleware.DebugToolbarMiddleware',
    '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',
    'django_user_agents.middleware.UserAgentMiddleware',
]

1 个答案:

答案 0 :(得分:2)

来自mozilla CORS docs

跨源资源共享(CORS)是一种使用 其他HTTP标头,告诉浏览器提供Web应用程序 在一个来源运行,可以从其他来源访问选定的资源 来源。

这是浏览器机制,与您误解它的意义上的API保护无关