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。中間件

相關文章
相關標籤/搜索