python-Django里CSRF對(duì)應(yīng)策略-創(chuàng)新互聯(lián)

CSRF(Cross Site Request Forgery, 跨站域請(qǐng)求偽造)是一種網(wǎng)絡(luò)的×××方式。

創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)成都網(wǎng)站制作、網(wǎng)站營(yíng)銷推廣、網(wǎng)站開發(fā)設(shè)計(jì),對(duì)服務(wù)紗窗等多個(gè)行業(yè)擁有豐富的網(wǎng)站建設(shè)及推廣經(jīng)驗(yàn)。創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司成立于2013年,提供專業(yè)網(wǎng)站制作報(bào)價(jià)服務(wù),我們深知市場(chǎng)的競(jìng)爭(zhēng)激烈,認(rèn)真對(duì)待每位客戶,為客戶提供賞心悅目的作品。 與客戶共同發(fā)展進(jìn)步,是我們永遠(yuǎn)的責(zé)任!

    我的理解是,比如你訪問過招商銀行的網(wǎng)站并登陸之后,你的cookie信息暫時(shí)不會(huì)失效,

    這時(shí),hacker通過各種方式誘導(dǎo)你訪問他給你提供的網(wǎng)站等鏈接,讓你在同一瀏覽器訪問

    hacker給你的網(wǎng)站時(shí),那么他給你提供的網(wǎng)站里面有直接有向招商銀行提交轉(zhuǎn)賬信息的請(qǐng)求,這時(shí),


    這個(gè)轉(zhuǎn)賬請(qǐng)求會(huì)借用你剛剛登陸過招商銀行的cookie信息,來使用的你的身份進(jìn)行合法的轉(zhuǎn)賬。


那么為了減少這個(gè)情況的發(fā)生,在客戶端與服務(wù)端交互的時(shí)候,當(dāng)客戶端瀏覽器第一次訪問cookie的時(shí)候,服務(wù)端會(huì)有基于csrf的隨機(jī)驗(yàn)證字符串生成,然后把這些字符串寫到客戶端cookie里,同時(shí)服務(wù)端在session里保存一份,當(dāng)客戶端瀏覽器再次發(fā)來post請(qǐng)求的時(shí)候,服務(wù)端會(huì)驗(yàn)證cookie里csrf_token(就是生成的這個(gè)隨機(jī)字符串)。

Django里自動(dòng)幫我們封裝了這個(gè)功能,在Django項(xiàng)目里的setting.py文件里會(huì)默認(rèn)開啟'django.middleware.csrf.CsrfViewMiddleware',這一項(xiàng)功能。

所以我們html文件里有post請(qǐng)求的時(shí)候要在from表單里添加{% csrf_token %}這一項(xiàng)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div>
        <form action="/app01/login/" method="post">
 {% csrf_token %}
            <input type="text" name="username">
            <input type="password" name="pwd">
            <input type="submit" value="提交">
        </form>
    </div>
</body>
</html>

但是有的時(shí)候是不需要 csrf_token 認(rèn)證的,有的時(shí)候是需要的,但是Django項(xiàng)目里的setting.py文件里設(shè)置了'django.middleware.csrf.CsrfViewMiddleware'之后就是全局生效了;這就 不是我們所需要的了。

那么如果有的函數(shù)不需要csrf_token 認(rèn)證的話,那么就需要用到@csrf_exempt裝飾器來設(shè)置單個(gè)函數(shù)不用csrf_token 認(rèn)證

from django.views.decorators.csrf import csrf_exempt,csrf_protect

@csrf_exempt是不需要設(shè)置csrf_token認(rèn)證的

@csrf_protect是 需要設(shè)置csrf_token 認(rèn)證的

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

分享標(biāo)題:python-Django里CSRF對(duì)應(yīng)策略-創(chuàng)新互聯(lián)
本文地址:http://muchs.cn/article2/egeic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷電子商務(wù)、軟件開發(fā)、響應(yīng)式網(wǎng)站、網(wǎng)站維護(hù)服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司