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