1.django在檢測post行爲時會有諸多的限制。html
爲了防止跨域請求僞造安全ajax
參考:http://www.qttc.net/201209211.htmldjango
http://www.javashuo.com/article/p-xcptltgl-cn.html跨域
2.爲何要進行csrf的控制?瀏覽器
瀏覽器聽從同源策略,杜絕了大部分的僞造請求,保證用戶信息的安全,防止惡意的網站竊取數據。但瀏覽器同時還規定,提交表單不受同源政策的限制。安全
爲何提交表單(post)不受同源政策的限制?服務器
post行爲被瀏覽器認爲是安全的,本事action請求後會進行界面跳轉,post本體沒法得到返回的數據。但post的行爲對於服務器仍是起做用了。且ajax下的post行爲受同源策略控制,沒法進行跨域請求。post主體沒法從返回的結果中獲得任何東西,他所能作的就是給服務器發送請求,以執行請求中所描述的命令,在服務器端直接改變數據的值,而非竊取服務器中的數據。因此,咱們要保護的對象是那些能夠直接產生數據改變的服務,而對於讀取數據的服務,則不須要進行 CSRF 的保護。post
參考:http://www.javashuo.com/article/p-tepdknfd-cx.html網站
3.什麼是瀏覽器同源策略?有什麼限制?如何繞開它?url
同源指url協議、域名、端口相同,若是非同源,共有三種行爲受到限制。
(1) Cookie、LocalStorage 和 IndexDB 沒法讀取。
(2) DOM 沒法得到。
(3) AJAX 請求不能發送
參考:http://www.ruanyifeng.com/blog/2016/04/same-origin-policy.html