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

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

解決Django提交表單報(bào)錯(cuò):CSRF token missing or incorrect的問(wèn)題

瀏覽:31日期:2024-10-21 08:33:17

1、在Django提交表單時(shí)報(bào)錯(cuò):Django提交表單報(bào)錯(cuò):

CSRF token missing or incorrect

具體報(bào)錯(cuò)頁(yè)面如下:

解決Django提交表單報(bào)錯(cuò):CSRF token missing or incorrect的問(wèn)題

2、有道詞典翻譯后如下:

通常,當(dāng)存在真正的跨站點(diǎn)請(qǐng)求偽造時(shí),或者Django的CSRF機(jī)制沒(méi)有被正確使用時(shí),就會(huì)出現(xiàn)這種情況。至于郵遞表格,你須確保:

您的瀏覽器正在接受cookie。

視圖函數(shù)將一個(gè)請(qǐng)求傳遞給模板的呈現(xiàn)方法。

在模板中,每個(gè)POST表單中都有一個(gè){% csrf_token %}模板標(biāo)記,目標(biāo)是一個(gè)內(nèi)部URL。

如果您沒(méi)有使用CsrfViewMiddleware,那么您必須在任何使用csrf_token模板標(biāo)簽的視圖以及那些接受POST數(shù)據(jù)的視圖上使用csrf_protect。

該表單有一個(gè)有效的CSRF令牌。在登錄另一個(gè)瀏覽器選項(xiàng)卡或登錄后單擊back按鈕之后,您可能需要使用表單重新加載頁(yè)面,因?yàn)榈卿浐罅钆茣?huì)旋轉(zhuǎn)。

您將看到這個(gè)頁(yè)面的幫助部分,因?yàn)樵贒jango設(shè)置文件中有DEBUG = True。將其更改為False,將只顯示初始錯(cuò)誤消息。

您可以使用CSRF_FAILURE_VIEW設(shè)置自定義這個(gè)頁(yè)面。

3、解決辦法:

(1)、確定項(xiàng)目底下的settings.py文件,是否存在django.middleware.csrf.CsrfViewMiddleware:

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’,]

(2)、如果確定settings.py文件有配置了,還是報(bào)錯(cuò),就要在form表單底下加一行代碼:

{% csrf_token %}

這樣應(yīng)該就不會(huì)報(bào)上面錯(cuò)誤了,以上內(nèi)容僅供學(xué)習(xí)參考,謝謝!

補(bǔ)充知識(shí):Django中csrf token驗(yàn)證原理

我多年沒(méi)維護(hù)的博客園,有一篇初學(xué)Django時(shí)的筆記,記錄了關(guān)于django-csrftoekn使用筆記,當(dāng)時(shí)幾乎是照抄官網(wǎng)的使用示例,后來(lái)工作全是用的flask。博客園也沒(méi)有維護(hù)。直到我的博客收到了如下評(píng)論,確實(shí)把我給問(wèn)倒了,而且我也仔細(xì)研究了這個(gè)問(wèn)題。

1. Django是怎么驗(yàn)證csrfmiddlewaretoken合法性的?

2. 每次刷新頁(yè)面的時(shí)候<input>中的csrf的value都會(huì)更新,每次重復(fù)登錄的時(shí)候cookie的csrf令牌都會(huì)刷新,那么這兩個(gè)csrf-token有什么區(qū)別?

解決Django提交表單報(bào)錯(cuò):CSRF token missing or incorrect的問(wèn)題

image.pngCSRF(Cross Site Request Forgery protection),中文簡(jiǎn)稱跨站請(qǐng)求偽造。

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

這樣子看起來(lái)似乎沒(méi)毛病,但是評(píng)論中的第三個(gè)問(wèn)題,每次刷新頁(yè)面,form表單中的token都會(huì)刷新,而cookie中的token卻只在每次登錄時(shí)刷新。我對(duì)csrftoken的驗(yàn)證方式起了疑問(wèn),后來(lái)看了一段官方文檔的解釋。

When validating the ‘csrfmiddlewaretoken’ field value, only the secret, not the full token, is compared with the secret in the cookie value. This allows the use of ever-changing tokens. While each request may use its own token, the secret remains common to all.This check is done by CsrfViewMiddleware.

官方文檔中說(shuō)到,檢驗(yàn)token時(shí),只比較secret是否和cookie中的secret值一樣,而不是比較整個(gè)token。

我又有疑問(wèn)了,同一次登錄,form表單中的token每次都會(huì)變,而cookie中的token不便,django把那個(gè)salt存儲(chǔ)在哪里才能保證驗(yàn)證通過(guò)呢。

直到看到源碼。

def _compare_salted_tokens(request_csrf_token, csrf_token): # Assume both arguments are sanitized -- that is, strings of # length CSRF_TOKEN_LENGTH, all CSRF_ALLOWED_CHARS. return constant_time_compare( _unsalt_cipher_token(request_csrf_token), _unsalt_cipher_token(csrf_token), )def _unsalt_cipher_token(token): ''' Given a token (assumed to be a string of CSRF_ALLOWED_CHARS, of length CSRF_TOKEN_LENGTH, and that its first half is a salt), use it to decrypt the second half to produce the original secret. ''' salt = token[:CSRF_SECRET_LENGTH] token = token[CSRF_SECRET_LENGTH:] chars = CSRF_ALLOWED_CHARS pairs = zip((chars.index(x) for x in token), (chars.index(x) for x in salt)) secret = ’’.join(chars[x - y] for x, y in pairs) # Note negative values are ok return secret

token字符串的前32位是salt, 后面是加密后的token, 通過(guò)salt能解密出唯一的secret。

django會(huì)驗(yàn)證表單中的token和cookie中token是否能解出同樣的secret,secret一樣則本次請(qǐng)求合法。

同樣也不難解釋,為什么ajax請(qǐng)求時(shí),需要從cookie中拿取token添加到請(qǐng)求頭中。

網(wǎng)上有不少關(guān)于django csrf token驗(yàn)證原理的文章都是錯(cuò)的,是因?yàn)樗麄兏静恢纁srf-token的結(jié)構(gòu)組成,我也是卡在第三條評(píng)論那.然后看了官方文檔,和CsrfViewMiddleware中間件源碼然后才恍然大悟。

以上這篇解決Django提交表單報(bào)錯(cuò):CSRF token missing or incorrect的問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Django
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
中文视频一区| 荡女精品导航| 91精品蜜臀一区二区三区在线| 欧美aa在线观看| 免费黄色成人| 久久中文视频| 国产精品色网| 日韩中文字幕区一区有砖一区 | 日韩午夜免费| 中文无码日韩欧| 国产福利资源一区| 欧产日产国产精品视频| 天使萌一区二区三区免费观看| 欧美精品九九| 久久97久久97精品免视看秋霞| a国产在线视频| 亚洲欧美日韩视频二区| 国产图片一区| 亚洲成av人片一区二区密柚| 久久夜色精品| 老鸭窝毛片一区二区三区| 久久天堂影院| 欧美性感美女一区二区| 日韩精品久久久久久| 精品一区二区三区四区五区| 国产真实久久| 老司机精品视频网| 尤物网精品视频| 水蜜桃久久夜色精品一区的特点| 国产精品一区二区美女视频免费看 | 9国产精品视频| 国产精品久久久久久久久久妞妞 | 国产精品99久久精品| 久久成人一区| 久久av免费| 伊人影院久久| 黄色在线网站噜噜噜| 欧美福利专区| av资源新版天堂在线| 国产欧美视频在线| 人人精品人人爱| 91精品一区二区三区综合| 国产一区二区三区久久久久久久久| 伊人久久大香线蕉av超碰演员| 国产成人久久精品麻豆二区| 日韩精品一区二区三区中文在线| 91高清一区| 欧美日韩视频网站| 日韩在线免费| 国产夫妻在线| 天堂中文在线播放| 91精品国产自产精品男人的天堂 | 日韩av电影一区| 9国产精品视频| 亚洲免费成人| 亚洲一区中文| 老司机精品久久| 亚洲一区二区小说| 亚洲精品无播放器在线播放| 中文无码日韩欧| 亚洲一区二区av| 欧美午夜网站| 麻豆精品在线观看| 97se亚洲| 国产精品v日韩精品v欧美精品网站 | 岛国av免费在线观看| 久久精品国产久精国产爱| 成人在线观看免费视频| 不卡福利视频| 中文亚洲欧美| 日韩av中文在线观看| 视频一区二区三区中文字幕| 中文字幕亚洲精品乱码| 国产精品一区二区美女视频免费看| 精品视频97| 欧美99久久| 日本成人在线一区| 国产精品高颜值在线观看| 精品一区在线| 欧美日韩a区| 欧洲精品一区二区三区| 免费成人性网站| 精品一区二区三区在线观看视频| www成人在线视频| 亚洲精品高潮| 日韩视频网站在线观看| 91精品观看| 国产精品片aa在线观看| 亚洲成人国产| 麻豆视频一区二区| 国产日韩综合| 成人av三级| 欧美一级网址| 亚洲一区国产一区| 国产拍在线视频| 久久精品av麻豆的观看方式| 日韩精品看片| 国产精品久久久一区二区| 99国产精品99久久久久久粉嫩| 国产精品免费大片| 蜜臀a∨国产成人精品| 欧美一区在线观看视频| 亚洲欧美视频| 日韩精品一区二区三区免费观影 | 欧美激情福利| 日本久久二区| 日韩一区二区免费看| 日韩精品dvd| 国产精品探花在线观看| 国产一级久久| 成人在线黄色| 国产中文字幕一区二区三区| 红桃视频欧美| 97精品中文字幕| 国产一区二区三区网| 日韩手机在线| 久久亚洲欧美| 欧美 日韩 国产精品免费观看| 免费日韩一区二区三区| 欧美视频久久| 日本vs亚洲vs韩国一区三区二区| 中文字幕中文字幕精品| 欧美 日韩 国产一区二区在线视频| 日韩精品dvd| 日韩电影免费网站| 国产精品免费大片| 国产欧美日韩一级| 视频一区视频二区在线观看| 国产精品毛片一区二区三区| 91久久久精品国产| 国产精品88久久久久久| 久久久久国产一区二区| 欧美日韩中文一区二区| 今天的高清视频免费播放成人| 久久精品亚洲人成影院 | 国产精品最新| 国产美女精品视频免费播放软件| 国产一卡不卡| 国产一区二区三区网| 日韩精品欧美激情一区二区| 91九色精品| 日韩在线麻豆| 免费在线亚洲| 久久久久蜜桃| 91国内精品| 伊伊综合在线| 久久aⅴ国产紧身牛仔裤| 日本三级亚洲精品| 成人免费一区| 亚洲毛片一区| 国产探花一区| 久久九九国产| 国产日韩一区二区三区在线| 老牛影视精品| 综合亚洲视频| 中国字幕a在线看韩国电影| 亚洲免费婷婷| 都市激情国产精品| 亚洲另类黄色| 久久激情婷婷| 激情欧美一区二区三区| 99久久99久久精品国产片果冰| 视频一区视频二区中文字幕| 粉嫩av一区二区三区四区五区 | 日韩精品福利一区二区三区| 97精品国产福利一区二区三区| 三级亚洲高清视频| 久久夜夜操妹子| 欧美亚洲免费| 亚洲精品裸体| 中文一区二区| 亚洲不卡系列| 成人污污视频| 国产日韩1区| 日韩精品视频在线看| 一区免费在线| 欧美日中文字幕| 久久一区视频| 欧美视频一区| 深夜福利亚洲| 亚洲一区二区小说| 国产精品tv| 高清久久精品| 日本欧美韩国一区三区| 岛国av在线播放| 久久一区视频| 成人亚洲精品| 免费一二一二在线视频| 亚洲国产欧美日本视频| 成人精品国产亚洲| 国产91在线精品| 国产一区丝袜| 色婷婷色综合| 日韩av中文字幕一区二区三区| 日韩一区精品字幕| 亚州av一区| 国产伦理久久久久久妇女| 国产精品黄色| 麻豆mv在线观看| 亚洲精品91|