django中csrftoken跨站请求伪造的几种方式
生活随笔
收集整理的這篇文章主要介紹了
django中csrftoken跨站请求伪造的几种方式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.介紹
我們之前從前端給后端發送數據的時候,一直都是把setting中中間件里的的csrftoken這條給注釋掉,其實這個主要起了一個對保護作用,以免惡意性數據的攻擊。但是這樣直接注釋掉并不是理智型的選擇,這里我們介紹以下幾種方式來解決這個問題。
csrf原理:先發送get請求,在用戶瀏覽器上藏一段隨機字符串,發送post請求時,瀏覽器自動攜帶該字符串來進行識別
2.方式一
在前端中添加{% csrf_token %},前端ajax發送的data數據中加上:
csrfmiddlewaretoken: $("[name='csrfmiddlewaretoken']").val()3.方式二
在ajax中添加X-CSRFToken的請求頭,必須從cookie中取csrftoken的值
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! '''$('#login').click(function () {$.ajax({url:{% url 'login' %},type: 'post',headers:{ "X-CSRFToken":$.cookie('csrftoken') },data: {user: $('[name="user"]').val(),pwd: $('[name="pwd"]').val()},success: function (data) {data = JSON.parse(data);if (data.status) {window.location = data.url}else {alert('登陸錯誤')}}})})4.方式三
使用$.ajaxSetup()給全局的ajax添加默認參數
5.方式四
在需要設置cookie的視圖上加裝飾器 ensure_csrf_cookie()
總結
以上是生活随笔為你收集整理的django中csrftoken跨站请求伪造的几种方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: django批量form表单处理
- 下一篇: Python sort()和sorted