簡體   English   中英

通過公共 IP 打開時控制台上的 Django 部署錯誤

[英]Django deployment error on console when opening through Public IP

我第一次在 aws ubuntu linux ec2 實例上部署了 django 站點。 我使用了 Apache 和 mySQL 數據庫。 我能夠成功部署該站點,並且可以通過我的公共 IP 訪問它,但它在 Chrome 控制台中發出警告:


[棄用] 該網站從網絡請求子資源,由於其用戶的特權網絡 position,它只能訪問該網絡。 這些請求將非公共設備和服務器暴露給互聯網,增加了跨站點請求偽造 (CSRF) 攻擊和/或信息泄露的風險。 為了降低這些風險,Chrome 在從非安全上下文發起時棄用對非公共子資源的請求,並將在 Chrome 92(2021 年 7 月)中開始阻止它們。


我的項目使用 Django Rest 框架來發布和獲取請求。 我已將 react 用於前端,因此我將其構建文件夾用作 django 中的模板,並且我的前端向我的服務器的公共 ip 發送請求。 我還附上了我的 settings.py 文件,以防我的任何設置有問題。

我在某處讀到使用域名可以解決此錯誤,但我不確定該問題是否與我的相同。 此外,如果是這種情況,那么我是否必須將請求 url 更改為我的域名,而不是我的反應構建中的公共 ip。 這是我第一次部署 django 站點,因此對我的部署設置的任何建議表示贊賞。 提前致謝。 如果你們需要更多信息,請告訴。

設置.py

ALLOWED_HOSTS = ['OUR PUBLIC IP']
SECURE_HSTS_SECONDS = 31536000
SECURE_SSL_REDIRECT = False
SECURE_HSTS_PRELOAD = True
SECURE_HSTS_INCLUDE_SUBDOMAINS = True
WHITENOISE_USE_FINDERS = True
INSTALLED_APPS = [
    'whitenoise.runserver_nostatic',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rest_framework',
    ...our apps
    'django_otp',
    'django_otp.plugins.otp_totp',
]
MIDDLEWARE = [
    'corsheaders.middleware.CorsMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.security.SecurityMiddleware',
    'whitenoise.middleware.WhiteNoiseMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django_otp.middleware.OTPMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
..database and other stuff
STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'build/static')
]
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
REST_FRAMEWORK = {
    'DEFAULT_RENDERER_CLASSES': (
        'rest_framework.renderers.JSONRenderer',
    ),
    'DEFAULT_PERMISSION_CLASSES': [
        'rest_framework.permissions.IsAuthenticatedOrReadOnly',
    ]
}
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'

將域分配給服務器后,警告消失了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM