注入攻击-XSS攻击-CSRF攻击介绍请访问:https://www.cnblogs.com/hwnzy/p/11219475.htmlhtml
1 Django防止注入攻击数据库
Django提供一个抽象的模型层来组织和操做Web应用的数据,经过使用Django的查询集,产生的SQL会由底层数据库驱动正确地转义,从而能够防止SQL注入。django
2 Django防止XSS攻击函数
1. 使用Django模板语言(DTL)编写HTML,Django会自动进行HTML转义,如:spa
<
会转换为<
>
会转换为>
'
(单引号)转换为'
"
(双引号)会转换为"
&
会转换为&
<p>Hello, {{ name }}</p> <!-- 当把name赋值为<script>alert('attack')</script>时 --> <p>Hello, <script>alert('attack')</script></p>
2.能够对每一个不被信任的值使用escape过滤器,它将对变量进行HTML转义。escapejs能够转义用于JavaScript字符串的字符。code
{{ value|escape }} {{ value|escapejs }}
3 Django防止CSRF攻击orm
1.默认状况settings.py中的MIDDLEWARE已经激活CSRF中间件'django.middleware.csrf.CsrfViewMiddleware'csrf
2.在使用POST表单的模板中在<from>元素中使用csrf_token标签htm
<form action="" method="POST"> {% csrf_token %} </form>
3.在相应的视图函数中要确保使用RequestContext来渲染响应,这样{% csrf_token %}才能正常工做。render函数、通用视图或contrib应用都使用了RequestContext。中间件