最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Django跨域請(qǐng)求CSRF的方法示例

 更新時(shí)間:2018年11月11日 15:04:15   作者:森林嶼麓  
這篇文章主要介紹了Django跨域請(qǐng)求CSRF的方法示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

web跨域請(qǐng)求

1.為什么要有跨域限制

舉個(gè)例子:

1.用戶登錄了自己的銀行頁(yè)面 http://mybank.com,http://mybank.com向用戶的cookie中添加用戶標(biāo)識(shí)。
2.用戶瀏覽了惡意頁(yè)面 http://evil.com。執(zhí)行了頁(yè)面中的惡意AJAX請(qǐng)求代碼。
3.http://evil.com向http://mybank.com發(fā)起AJAX HTTP請(qǐng)求,請(qǐng)求會(huì)默認(rèn)把http://mybank.com對(duì)應(yīng)cookie也同時(shí)發(fā)送過(guò)去。
4.銀行頁(yè)面從發(fā)送的cookie中提取用戶標(biāo)識(shí),驗(yàn)證用戶無(wú)誤,response中返回請(qǐng)求數(shù)據(jù)。此時(shí)數(shù)據(jù)就泄露了。
5.而且由于Ajax在后臺(tái)執(zhí)行,用戶無(wú)法感知這一過(guò)程。

以上就是所謂是CSRF(Cross-site request forgery)攻擊,跨站請(qǐng)求偽造。接下來(lái)說(shuō)一下 Django中處理csrf的方式

正常情況下直接發(fā)起一個(gè)psot請(qǐng)求,會(huì)報(bào)錯(cuò)。錯(cuò)誤的意思是csrf校驗(yàn)失敗,request請(qǐng)求被丟棄掉。

那么在django中的post失敗有兩種解決辦法:

解決辦法一:將csrf中間層注釋掉

MIDDLEWARE = [
 
  'django.middleware.security.SecurityMiddleware',
 
  'django.contrib.sessions.middleware.SessionMiddleware',
 
  'django.middleware.common.CommonMiddleware',
 
#  'django.middleware.csrf.CsrfViewMiddleware',
 
  'django.contrib.auth.middleware.AuthenticationMiddleware',
 
  'django.contrib.messages.middleware.MessageMiddleware',
 
  'django.middleware.clickjacking.XFrameOptionsMiddleware',
 
]

此時(shí)將不會(huì)進(jìn)行csrf的校驗(yàn),但如前面所述,這是一種不安全的行為。而且djano也不推薦使用

解決辦法二:

在前面的提示中有這樣一句話:

<form action="" method="post">{% csrf_token %}

也就是說(shuō)在網(wǎng)頁(yè)中加入csrf_token的標(biāo)簽就可以通過(guò)csrf校驗(yàn)

Django 提供的 CSRF 防護(hù)機(jī)制:

1、django 第一次響應(yīng)來(lái)自某個(gè)客戶端的請(qǐng)求時(shí),會(huì)在服務(wù)器端隨機(jī)生成一個(gè) token,把這個(gè) token 放在 cookie 里。然后每次 POST 請(qǐng)求都會(huì)帶上這個(gè) token,這樣就能避免被 CSRF 攻擊。

2、在返回的 HTTP 響應(yīng)的 cookie 里,django 會(huì)為你添加一個(gè) csrftoken 字段,其值為一個(gè)自動(dòng)生成的 token,在所有的 POST 表單時(shí),必須包含一個(gè) csrfmiddlewaretoken 字段 (只需要在模板里加一個(gè) tag, django 就會(huì)自動(dòng)幫你生成,見(jiàn)下面)

3、在處理 POST 請(qǐng)求之前,django 會(huì)驗(yàn)證這個(gè)請(qǐng)求的 cookie 里的 csrftoken 字段的值和提交的表單里的 csrfmiddlewaretoken 字段的值是否一樣。如果一樣,則表明這是一個(gè)合法的請(qǐng)求,否則,這個(gè)請(qǐng)求可能是來(lái)自于別人的 csrf 攻擊,返回 403 Forbidden.

4、在所有 ajax POST 請(qǐng)求里,添加一個(gè) X-CSRFTOKEN header,其值為 cookie 里的 csrftoken 的值

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python numpy線性代數(shù)用法實(shí)例解析

    Python numpy線性代數(shù)用法實(shí)例解析

    這篇文章主要介紹了Python numpy線性代數(shù)用法實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • python3 配置logging日志類的操作

    python3 配置logging日志類的操作

    這篇文章主要介紹了python3 配置logging日志類的操作方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-04-04
  • VSCode中autopep8無(wú)法運(yùn)行問(wèn)題解決方案(提示Error: Command failed,usage)

    VSCode中autopep8無(wú)法運(yùn)行問(wèn)題解決方案(提示Error: Command failed,usage)

    這篇文章主要介紹了VSCode中autopep8無(wú)法運(yùn)行問(wèn)題解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • python實(shí)現(xiàn)將視頻按幀讀取到自定義目錄

    python實(shí)現(xiàn)將視頻按幀讀取到自定義目錄

    今天小編就為大家分享一篇python實(shí)現(xiàn)將視頻按幀讀取到自定義目錄,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • keras .h5轉(zhuǎn)移動(dòng)端的.tflite文件實(shí)現(xiàn)方式

    keras .h5轉(zhuǎn)移動(dòng)端的.tflite文件實(shí)現(xiàn)方式

    這篇文章主要介紹了keras .h5轉(zhuǎn)移動(dòng)端的.tflite文件實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-05-05
  • Python+?Flask實(shí)現(xiàn)Mock?Server詳情

    Python+?Flask實(shí)現(xiàn)Mock?Server詳情

    這篇文章主要介紹了Python+?Flask實(shí)現(xiàn)Mock?Server詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • Python使用OpenPyXL處理Excel表格

    Python使用OpenPyXL處理Excel表格

    這篇文章主要介紹了Python使用OpenPyXL處理Excel表格,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • python實(shí)現(xiàn)名片管理系統(tǒng)項(xiàng)目

    python實(shí)現(xiàn)名片管理系統(tǒng)項(xiàng)目

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)名片管理系統(tǒng)項(xiàng)目,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • Python基于爬蟲實(shí)現(xiàn)全網(wǎng)搜索并下載音樂(lè)

    Python基于爬蟲實(shí)現(xiàn)全網(wǎng)搜索并下載音樂(lè)

    這篇文章主要介紹了Python基于爬蟲實(shí)現(xiàn)全網(wǎng)搜索并下載音樂(lè)的方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2021-02-02
  • Python實(shí)現(xiàn)一鍵自動(dòng)分類管理文件

    Python實(shí)現(xiàn)一鍵自動(dòng)分類管理文件

    經(jīng)常雜亂無(wú)章的文件夾會(huì)讓我們找不到所想要的文件,所以本文小編特意為大家介紹了如何制作一個(gè)可視化GUI界面,通過(guò)輸入路徑一鍵點(diǎn)擊實(shí)現(xiàn)文件分門別類的歸檔,希望對(duì)大家有所幫助<BR>
    2024-01-01

最新評(píng)論

丰原市| 湟中县| 东海县| 宝山区| 青河县| 洛阳市| 大同县| 洛宁县| 呼图壁县| 加查县| 桐庐县| 日照市| 滦南县| 陵川县| 乐清市| 衢州市| 康平县| 游戏| 绿春县| 牙克石市| 洪湖市| 哈尔滨市| 泰宁县| 仁怀市| 固始县| 闸北区| 甘肃省| 永修县| 永清县| 晴隆县| 满洲里市| 湘潭县| 瓦房店市| 衡东县| 景泰县| 新泰市| 潼南县| 中方县| 德清县| 荆门市| 金溪县|