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请求