日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

django中csrftoken跨站请求伪造的几种方式

發布時間:2025/3/20 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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添加默認參數

$.ajaxSetup({headers: {"X-CSRFToken": $.cookie('csrftoken')},});

5.方式四
在需要設置cookie的視圖上加裝飾器 ensure_csrf_cookie()

from django.views.decorators.csrf import ensure_csrf_cookie@ensure_csrf_cookie def server(request):return render(request, 'server.html')

總結

以上是生活随笔為你收集整理的django中csrftoken跨站请求伪造的几种方式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。