django的setting中各配置
1. ADMINS
是一個元組,由一個個小元組組成,小元組中連個參數,name和Email用於debug=False的時候,還要配置email,出現問題的時候給admin發送的錯誤報告
2. ALLOWED_HOSTS
是一個列表,裏面的每個元素都是一個host,只有host字段值在這裏面的才能被允許訪問,強烈不推薦用*
3. SESSION_COOKIE_HTTPONLY
=True 表示,session和cookie只能被http讀取,不能被javascript讀取
4. SESSION_COOKIE_SECURE
表示 session cookie 被secure標記,只能通過https傳輸,默認False
5. 中間鍵
- 常見的有:
MIDDLEWARE = [
'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',
]
SessionMiddleware:
表示在應用中使用session
CsrfViewMiddleware:
表示Django使用CSRG token來防範csrf攻擊
XFrameOptionsMiddleware:
Clickjacking(點擊劫持)是由互聯網安全專家羅伯特·漢森和耶利米·格勞斯曼在2008年首創的。是一種視覺欺騙手段,在web端就是iframe嵌套一個透明不可見的頁面,讓用戶在不知情的情況下,點擊攻擊者想要欺騙用戶點擊的位置。
To set the same X-Frame-Options value for all responses in your site
就是設置一個相同的x-frame-options參數CommonMiddleware
主要是生效setting中的配置:
DISALLOWED_USER_AGENTS: 一個列表,限定以裏面任意元素爲user-agents的請求,讓他不能訪問 APPEND_SLASH = True 表示Django會自動幫哪些尾部沒有‘/’的加上‘/’,status_code=301 PREPEND_WWW = True 自動把url前補全www USE_ETAGS = True 聲明能夠在html中使用Etags,會返回給瀏覽器not modified響應(是否是全部應用?)
AuthenticationMiddleware
將提供一個request.user的屬性,如果user沒有login,就是None,陌生人,登陸用戶login(),登出用logout()
MessageMiddleware
- 讓你的Django支持messages:messages使用session的存儲類來存儲,
- 使用方法:message是支持信息level的
from django.contrib import messages
messages.add_message(request, messages.INFO, 'Hello world.')
# 或
messages.debug(request, '%s SQL statements were executed.' % count)
messages.info(request, 'Three credits remain in your account.')
messages.success(request, 'Profile details updated.')
messages.warning(request, 'Your account expires in three days.')
messages.error(request, 'Document deleted.')
- 模版中讀取的方法:
{% if messages %}
<ul class="messages">
{% for message in messages %}
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
{% endfor %}
</ul>
{% endif %}
SecurityMiddleware
使生效:
- SECURE_BROWSER_XSS_FILTER = True 防範xss攻擊
XSS攻擊的基本概念主要是:
惡意用戶在網頁的可輸入的地方輸入可執行的腳本(如javascript)代碼,從而使網頁解析執行該腳本代碼來達到攻擊的效果, 比如在網站上寫一篇文章時包含這段代碼: ,如果該字符串在後臺沒有進行XSS攻擊防範,就會導致導致其他人訪問該文章時網頁執行上面的腳本從而alert(1).
防止XSS攻擊最主要方式 :
把特殊標籤符號轉碼,比如把”<”, “>”, “&”等這些特殊字符轉碼即可防止XSS攻擊.
SECURE_SSL_REDIRECT = True Django會自動的將http請求重定向(301)到https請求