1. 程式人生 > >django中CSRF的問題及解決

django中CSRF的問題及解決

什麼是CSRF,看介紹

CSRF是Cross Site Request Forgery的縮寫,稱其為“跨站請求偽造”。常與XSS想提並論,但它與XSS非常不同,並且攻擊方式幾乎相左。XSS利用站點內的信任使用者,而CSRF則通過偽裝來自受信任使用者的請求來利用受信任的網站。與XSS攻擊相比,CSRF攻擊往往不大流行(因此對其進行防範的資源也相當稀少)和難以防範,所以有時候被認為比XSS更具危險性。

問題:

CSRF verification failed. Request aborted. 
Then you need to add  ‘django.middleware.csrf.CsrfViewMiddleware’, and  ‘django.middleware.csrf.CsrfResponseMiddleware’ your settings.py file.

解決方法

按照提示說明將setting.py的MIDDLEWARE_CLASSES中修改CsrfResponseMiddleware and CsrfMiddleware為CsrfViewMiddleware,並且在模版中CSRF標籤,即在form區域內加上了{% csrf_token %},這個標籤會自動被django模板處理成一段html