注入攻擊-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。中間件