Django是如何防止注入攻击-XSS攻击-CSRF攻击

注入攻击-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

  • < 会转换为&lt;
  • > 会转换为&gt;
  • '(单引号)转换为&#39;
  • " (双引号)会转换为 &quot;
  • & 会转换为 &amp;
<p>Hello, {{ name }}</p>
<!-- 当把name赋值为<script>alert('attack')</script>时 -->
<p>Hello, &ltscript&gtalert(&#39attack&#39)&lt/script&gt</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。中间件

相关文章
相关标签/搜索