日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Django CSRF認證的幾種解決方案

瀏覽:31日期:2024-10-23 13:44:19

什么是CSRF

瀏覽器在發送請求的時候,會自動帶上當前域名對應的cookie內容,發送給服務端,不管這個請求是來源A網站還是其它網站,只要請求的是A網站的鏈接,就會帶上A網站的cookie。瀏覽器的同源策略并不能阻止CSRF攻擊,因為瀏覽器不會停止js發送請求到服務端,只是在必要的時候攔截了響應的內容?;蛘哒f瀏覽器收到響應之前它不知道該不該拒絕。

攻擊過程

用戶登陸A網站后,攻擊者自己開發一個B網站,這個網站會通過js請求A網站,比如用戶點擊了某個按鈕,就觸發了js的執行。

防止攻擊

Double Submit Cookie

攻擊者是利用cookie隨著http請求發送的特性來攻擊。但攻擊者不知道 cookie里面是什么。

Django中是在表單中加一個隱藏的 csrfmiddlewaretoken,在提交表單的時候,會有 cookie 中的內容做比對,一致則認為正常,不一致則認為是攻擊。由于每個用戶的 token 不一樣,B網站上的js代碼無法猜出token內容,對比必然失敗,所以可以起到防范作用。

Synchronizer Token

和上面的類似,但不使用 cookie,服務端的數據庫中保存一個 session_csrftoken,表單提交后,將表單中的 token 和 session 中的對比,如果不一致則是攻擊。

這個方法實施起來并不困難,但它更安全一些,因為網站即使有 xss 攻擊,也不會有泄露token的問題。

Django使用CsrfViewMiddleware中間件進行CSRF校驗,默認開啟防止csrf(跨站點請求偽造)攻擊,在post請求時,沒有攜帶csrf字段,導致校驗失敗,報403錯誤。那么我們如何解決這種403錯誤呢?

解決方法

1. 去掉項目的CSRF驗證

Django CSRF認證的幾種解決方案

注釋掉此段代碼即可,但是不推薦此方式,將導致我們的網站完全無法防止CSRF攻擊。

2. 前端表單中增加csrf信息

<form enctype='multipart/form-data' method='post' action='{% url ’add_data’ %}'> {% csrf_token %}</form>

一定要注意后端使用render而不要使用render_to_response進行渲染,這樣前端就會有csrf_token變量,前端cookies中也會出現csrftoken數據,然后在HTML中使用即可。這種方式只限制在form表單中使用,ajax請求不支持。

3. 指定請求去掉CSRF校驗

可以只針對指定的路由去掉CSRF校驗,這也分為兩種情況:

FBV:以函數實現路由處理

# 導入,可以使此次請求忽略csrf校驗from django.views.decorators.csrf import csrf_exempt# 在處理函數加此裝飾器即可@csrf_exemptdef add_data(request): result = {} # TODO return HttpResponse(result)

CBV:以類實現路由處理

from django.views import Viewfrom django.views.decorators.csrf import csrf_exemptfrom django.utils.decorators import method_decoratorclass IndexView(View): @method_decorator(csrf_exempt) def dispatch(self, request, *args, **kwargs): return super().dispatch(request, *args, **kwargs) def get(self, request, *args, **kwargs): return render(request, ’home.html’) def post(self, request, *args, **kwargs): data = request.POST.get(’data’) qr_path = gen_qrcode(data) return HttpResponse(qr_path)

或者用下面的方式,把裝飾器放在類外面

from django.views import Viewfrom django.views.decorators.csrf import csrf_exemptfrom django.utils.decorators import method_decorator@method_decorator(csrf_exempt, name=’dispatch’)class IndexView(View): def get(self, request, *args, **kwargs): return render(request, ’home.html’) def post(self, request, *args, **kwargs): data = request.POST.get(’data’) qr_path = gen_qrcode(data) return HttpResponse(qr_path)

4. 為所有請求添加csrf校驗數據(推薦)

以上方式都有限制,適用范圍比較窄,我們需要一種可以一勞永逸的方式:讓所有請求都攜帶csrf數據。因為我們是使用Django模板渲染前端頁面的,所以一般會先定義一個base.html,其他頁面通過{% extends 'base.html' %}來引入使用,那么在base.html中添加ajax的全局鉤子,在請求時添加csrf數據即可。

<!DOCTYPE html><html><head> <meta charset='utf-8'> <title>{% block title %}首頁{% endblock %}</title> <link rel='stylesheet' href='http://m.b3g6.com/bcjs/{% static ’css/base.css’%}'> <script src='https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js'></script> <script> $.ajaxSetup({ data: {csrfmiddlewaretoken: ’{{ csrf_token }}’ } }) </script> {% block css %} {% endblock %}</head><body>

到此這篇關于Django CSRF認證的幾種解決方案的文章就介紹到這了,更多相關Django CSRF認證 內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Django
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
奇米亚洲欧美| 久久婷婷亚洲| 亚洲资源网站| 亚洲综合精品| 中文字幕亚洲精品乱码| 亚洲v天堂v手机在线| 欧美亚洲综合视频| 中文字幕一区二区三区在线视频| 国产一区二区精品| 蜜桃视频在线观看一区| 免费一区二区视频| 日本中文字幕一区二区| 欧美日韩亚洲一区在线观看| 久久99免费视频| 国产一区不卡| 久久夜夜操妹子| 婷婷综合社区| 综合国产精品| 国产精品久久久久久久久久白浆| 久久精品亚洲| 激情欧美亚洲| 午夜精品影视国产一区在线麻豆| 亚洲日产国产精品| 国产精品视频首页| 欧美好骚综合网| 91精品一区二区三区综合| 欧美高清一区| 日韩中文字幕无砖| 你懂的亚洲视频| 精品网站999| 久久精品影视| 亚洲女人av| 日本免费在线视频不卡一不卡二| 国产精品亚洲欧美| 日韩国产一区二区三区| 好看不卡的中文字幕| 日本精品一区二区三区在线观看视频| 国产精品调教| 特黄特色欧美大片| 亚洲综合专区| 国产一区二区三区免费在线| 亚洲少妇一区| 欧美黑人做爰爽爽爽| 欧美午夜精彩| 欧美日韩视频免费看| 日韩免费久久| 亚洲精品福利| 久久婷婷亚洲| 欧美在线首页| 成人久久久久| 国产欧美三级| 欧美日韩中文字幕一区二区三区| 国产亚洲欧洲| 麻豆视频久久| 99国产成+人+综合+亚洲欧美| 国产精品xvideos88| 日本久久成人网| 国产一级成人av| 91成人网在线观看| 美女久久精品| 日韩中文字幕不卡| 麻豆视频在线观看免费网站黄 | 天堂久久av| 欧美久久天堂| 日韩精品中文字幕吗一区二区| 亚洲黄色网址| 欧美一区不卡| 91久久久精品国产| 麻豆一区二区三| 亚洲专区视频| 亚洲午夜久久久久久尤物| 国产日韩亚洲| 欧美资源在线| 丝袜诱惑一区二区| 国产麻豆一区二区三区精品视频| 亚洲电影在线一区二区三区| 国产精品男女| 午夜亚洲精品| 欧美日韩在线观看首页| 91嫩草精品| 国产精品老牛| 成人在线网站| 精品国产欧美日韩| 欧美一区二区三区久久| 亚洲欧美高清| 日韩毛片在线| 国产精品福利在线观看播放| 日韩av一区二区三区四区| 女人天堂亚洲aⅴ在线观看| 亚洲精品**中文毛片| 欧美激情在线精品一区二区三区| 久久先锋影音| 亚洲激情不卡| 成人精品中文字幕| 亚洲国产欧美日本视频| 美女尤物国产一区| 日韩成人av影视| 蜜桃久久久久久久| 亚洲免费观看| 91精品亚洲| 日韩国产一区二区三区| 精品国产午夜| 久久精品女人| 精品资源在线| 欧美激情精品| 久久精品国产网站| 欧美激情视频一区二区三区免费 | 国产99亚洲| 日本在线精品| 日韩免费高清| 日韩免费高清| 久久久夜夜夜| 成人福利视频| 精精国产xxxx视频在线野外| 日韩av自拍| 国产+成+人+亚洲欧洲在线| 国产欧美91| 欧美亚洲福利| 国产毛片精品| 久久精品99国产精品| 日本aⅴ免费视频一区二区三区| 亚洲精品亚洲人成在线观看| 蜜桃久久av一区| 亚洲一二三区视频| 日韩国产欧美在线播放| 国产精品视频一区视频二区| 国产福利一区二区三区在线播放| 国产欧美亚洲精品a| 国产激情一区| 超碰99在线| 日韩精品水蜜桃| 亚洲福利精品| 一区免费视频| 亚洲三级网址| 日本视频一区二区| 免费日韩成人| 国产自产自拍视频在线观看| 91精品国产调教在线观看 | 久久视频国产| 在线观看免费一区二区| 黄色日韩在线| 亚洲乱亚洲高清| 国产欧美视频在线| 精品国产麻豆| 久久九九精品| 亚洲深夜福利| 日韩高清一区二区| 久久av偷拍| 久久婷婷丁香| 亚洲一区不卡| 91亚洲无吗| 精品国产精品久久一区免费式| 麻豆mv在线观看| 日韩视频中文| 日韩精品视频网站| 精品中文字幕一区二区三区四区| 日韩高清欧美| 免费人成网站在线观看欧美高清| 日韩高清中文字幕一区| 精品亚洲精品| 亚洲福利免费| 日韩欧乱色一区二区三区在线| 久久三级毛片| 夜久久久久久| 国产精品主播| 成人午夜精品| 亚洲午夜免费| 福利一区在线| 免费人成在线不卡| 久久香蕉精品香蕉| 日韩午夜av在线| 国产精成人品2018| 欧美日韩激情| 国产精品三p一区二区| 久久久精品午夜少妇| 一区二区三区四区在线观看国产日韩| 国产精品手机在线播放| 免费毛片在线不卡| 国产精品久久久久久久久久齐齐| 欧美日韩色图| 国产精品一国产精品k频道56| 色天使综合视频| 日韩激情一二三区| 99精品视频在线| 日韩一区二区三区高清在线观看| 国语精品一区| 久久不射网站| 都市激情国产精品| 亚洲影视一区二区三区| 老牛影视精品| 日韩欧美精品一区二区综合视频| 一区二区三区四区日本视频| 六月婷婷一区| 欧美一级鲁丝片| 国产日韩免费| 99精品99| 日韩一区二区三区免费播放| 亚洲精品少妇| 久久天堂av| 国产精品资源|