必须配置项

PASSWORD_HASHER

这个配置是在使用Django自带的密码加密函数的时候会使用的加密算法的列表.默认如下:

PASSWORD_HASHERS = (
'django.contrib.auth.hashers.PBKDF2PasswordHasher',
'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher',
'django.contrib.auth.hashers.BCryptSHA256PasswordHasher',
'django.contrib.auth.hashers.BCryptPasswordHasher',
'django.contrib.auth.hashers.SHA1PasswordHasher',
'django.contrib.auth.hashers.MD5PasswordHasher',
'django.contrib.auth.hashers.CryptPasswordHasher',
)

默认使用第一个条目的加密算法,即PBKDF2算法.

所以在使用make_password,check_password,is_password_unable等密码加解密函数的时候,需要添加这个list在setting.py文件中,推荐使用默认配置的算法.

ADMINS

ADMINS是一个二元元组,记录开发人员的姓名和email,当DEBUG为False而views发生异常的时候发email通知这些开发人员.类如:

(('John', 'john@example.com'), ('Mary', 'mary@example.com'))

ALLOWED_HOSTS

ALLOWED_HOSTS是为了限定请求中的host值,以防止黑客构造包来发送请求.只有在列表中的host才能访问.强烈建议不要使用*通配符去配置,另外当DEBUG设置为False的时候必须配置这个配置.否则会抛出异常.配置模板如下:

ALLOWED_HOSTS = [
'.example.com', # Allow domain and subdomains
'.example.com.', # Also allow FQDN and subdomains
]

DEBUG

DEBUG配置为True的时候会暴露出一些出错信息或者配置信息以方便调试.但是在上线的时候应该将其关掉,防止配置信息或者敏感出错信息泄露.

DEBUG = False

INSTALLED_APPS

INSTALLED_APPS是一个一元数组.里面是应用中要加载的自带或者自己定制的app包路径列表.

INSTALLED_APPS = [
'anthology.apps.GypsyJazzConfig',
# ...
]

MANAGERS

和ADMINS类似,并且结构一样,当出现'broken link'的时候给manager发邮件.

MIDDLEWARE_CLASSES

web应用中需要加载的一些中间件列表.是一个一元数组.里面是django自带的或者定制的中间件包路径,需要注意顺序如下:

MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware',
)

TEMPLATE_DEBUG

同样是一个DEBUG开关,若为True,DEBUG信息在触发异常之后,会显示在网页上.上线之前必须修改成:

TEMPLATE_DEBUG = False

建议配置

DEBUG

DEBUG = False

防止配置信息和调试信息暴露

SESSION_COOKIE_SECURE

SESSION_COOKIE_SECURE = True

使得session cookie被标记上secure标记,从而只能传输在HTTPS下.

SESSION_COOKIE_HTTPONLY

SESSION_COOKIE_HTTPONLY = True

使得session cookie被标记上http only标记,从而只能被http协议读取,不能被Javascript读取

TEMPLATE_DEBUG

TEMPLATE_DEBUG = False

防止配置信息和debug信息通过view传出.

推荐的中间件

SessionMiddleware

配置作用:在应用中使用session

配置方法:

在MIDDLEWARE_CLASSES中加入:

django.contrib.sessions.middleware.SessionMiddleware

CsrfViewMiddleware

配置作用:在应用中添加CSRF token用来防范csrf攻击

配置方法:

在MIDDLEWARE_CLASSES中加入:

django.contrib.sessions.middleware.CsrfViewMiddleware

clickjacking.XFrameOptionsMiddleware

配置作用:在Http header中添加 X-Frame-Options 标志.防范Clickjacking

配置方法:

在MIDDLEWARE_CLASSES中加入:

django.middleware.clickjacking.XFrameOptionsMiddleware

推荐安装的APP

django_bleach

作用:过滤html字符串,返回合法的已经过滤的安全html字符串.

官方链接:https://bitbucket.org/ionata/django-bleach

文档:https://django-bleach.readthedocs.org/en/latest/

xframeoptions

作用:防范ClickJacking,作用和官方的XFrameOptionsMiddleware相似

官方链接:https://github.com/paulosman/django-xframeoptions

Django安全配置(settings.py)详解的更多相关文章

  1. 【5】Django项目配置settings.py详解

    夫唯不争,故天下莫能与之争 --老子<道德经> 本节内容 1.项目配置文件settings.py介绍 2.数据库配置[MySQL] 3.创建模型对象并和数据库同步 4.python官方提供 ...

  2. django项目的配置文件settings.py详解

    我们创建好了一个Python项目(mysite/)之后,需要在项目中添加模块应用(polls/),在模块应用中添加处理功能逻辑,如添加模块中的视图处理函数(polls.views.index()),这 ...

  3. Django路由配置之正则表达式详解

    正则表达式详解 urls.py from django.conf.urls import url from . import views urlpatterns = [ url(r'^articles ...

  4. CentOS 6.3下Samba服务器的安装与配置方法(图文详解)

    这篇文章主要介绍了CentOS 6.3下Samba服务器的安装与配置方法(图文详解),需要的朋友可以参考下   一.简介  Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件, ...

  5. Windows 7操作系统下PHP 7的安装与配置(图文详解)

    前提博客 Windows 7操作系统下Apache的安装与配置(图文详解) 从官网下载           PHP的官网 http://www.php.net/         特意,新建这么一个目录 ...

  6. Django的安装、使用详解、自动化测试应用以及程序打包

    1.Django的安装 pip install Django 验证 Django 是否能被 Python 识别 >>> import django >>> prin ...

  7. Maven全局配置文件settings.xml详解(转)

    Maven全局配置文件settings.xml详解   目录 一.概要 1.settings.xml的作用2.settings.xml文件位置3.配置的优先级 二.settings.xml元素详解 1 ...

  8. Django之ORM查询操作详解

    浏览目录 一般操作 ForeignKey操作 ManyToManyField 聚合查询 分组查询 F查询和Q查询 事务 Django终端打印SQL语句 在Python脚本中调用Django环境 其他操 ...

  9. MYSQL服务器my.cnf配置文档详解

    MYSQL服务器my.cnf配置文档详解 硬件:内存16G [client] port = 3306 socket = /data/3306/mysql.sock [mysql] no-auto-re ...

随机推荐

  1. Mysql 的使用方法

    一 .Mysql 优势: 1.程序稳定性 :这样任意一台服务所在的机器崩溃了都不会影响数据和另外的服务. 2.数据一致性 :所有的数据都存储在一起,所有的程序操作的数据都是统一的,就不会出现数据不一致 ...

  2. SpringBoot官方文档学习(三)配置文件、日志、国际化和JSON

    一.Profiles Spring配置文件提供了一种方法来隔离应用程序配置的各个部分,并使其仅在某些环境中可用.任何@Component.@Configuration或@ConfigurationPr ...

  3. javaweb学习笔记(二)

    一.javaweb学习是所需要的细节 1.Cookie的注意点 ① Cookie一旦创建,它的名称就不能更改,Cookie的值可以为任意值,创建后允许被修改. ② 关于Cookie中的setMaxAg ...

  4. am335x system upgrade kernel ec20 simcom7600ce(十一)

    1      Scope of Document This document describes 4G hardware design, support quectel ec20 4G module/ ...

  5. USACO10FEB]慢下来Slowing down dfs序 线段树

    [USACO10FEB]慢下来Slowing down 题面 洛谷P2982 本来想写树剖来着 暴力数据结构直接模拟,每头牛回到自己的农场后,其子树下的所有牛回到农舍时,必定会经过此牛舍,即:每头牛回 ...

  6. [内网渗透]Mimikatz使用大全

    0x00 简介 Mimikatz 是一款功能强大的轻量级调试神器,通过它你可以提升进程权限注入进程读取进程内存,当然他最大的亮点就是他可以直接从 lsass.exe 进程中获取当前登录系统用户名的密码 ...

  7. [spring-boot] 配置随机端口

    第一种: server.port=0 第二种: //自定义一个范围 server.port=${random.int[1024,9999]}

  8. qt creator中常用快捷键

    激活欢迎模式 Ctrl + 1 激活编辑模式 Ctrl + 2 激活调试模式 Ctrl + 3 激活项目模式 Ctrl + 4 激活帮助模式 Ctrl + 5 激活输出模式 Ctrl + 6 查找当前 ...

  9. JEECG Hibernate 自动更新 持久化

    Hibernate不调用update却自动更新 - 七郎 - 博客园http://www.cnblogs.com/yangy608/p/4073941.html hibernate自动更新持久化类的问 ...

  10. win10不能将文件拖到另外一个程序中去的解决办法

    author: headsen chen date: 2019-07-25   14:48:32 notice : 个人原创 新建一个 aa.txt的文本文档: Windows Registry Ed ...