91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

CSRF(XSRF)和CBV的介紹和防護

發布時間:2020-07-21 07:42:04 來源:網絡 閱讀:2735 作者:kesungang 欄目:開發技術

CSRF概念:CSRF跨站點請求偽造(Cross—Site Request Forgery),跟XSS***一樣,存在巨大的危害性,你可以這樣來理解:
***者盜用了你的身份,以你的名義發送惡意請求,對服務器來說這個請求是完全合法的,但是卻完成了***者所期望的一個操作,比如以你的名義發送郵件、發消息,盜取你的賬號,添加系統管理員,甚至于購買商品、虛擬貨幣轉賬等。 如下:其中Web A為存在CSRF漏洞的網站,Web B為***者構建的惡意網站,User C為Web A網站的合法用戶。

代碼設計

    url(r'^csrf1.html/', views.csrf1),
def csrf1(request):
    if request.method == "GET":
        return render(request,'csrf1.html')
    else:
        return HttpResponse('ok')
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>csrf1.html</title>
</head>
<body>
    <form action="csrf1.html" method="POST">
        {% csrf_token %}#獲取csrf_token,并且生成了一個隱藏的input標簽
        {{ csrf_token }}#這個是顯示csrf_token,自己測試看看
        <input type="text"/>
        <input type="submit" value="提交">
    </form>
</body>
</html>

在django里面打開csrf機制
CSRF(XSRF)和CBV的介紹和防護
通過瀏覽器訪問http://127.0.0.1:8000/csrf1.html,如果沒有開啟這個csrf機制,關閉以后就不會認證。開啟后,不獲取隨機csrf_token就會報錯
CSRF(XSRF)和CBV的介紹和防護
CSRF(XSRF)和CBV的介紹和防護

csrf是隨機的一個字符串,會發給服務端,然后再次訪問的時候帶著這個字符串
如果想讓某一個函數不驗證了,其他的使用怎么操作?????
要想完成上面的操作,需要添加一個裝飾器,如下

from django.views.decorators.csrf import csrf_exempt #導入這個模塊

@csrf_exempt#添加裝飾器
def csrf1(request):
    if request.method == "GET":
        return render(request,'csrf1.html')
    else:
        return HttpResponse('ok')

全局禁用,局部使用,怎么操作????

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

# @csrf_exempt
@csrf_protect#局部使用
def csrf1(request):
    if request.method == "GET":
        return render(request,'csrf1.html')
    else:
        return HttpResponse('ok')

上面的這些都是FBV里面的操作,下面我們隊CBV如何操作那

在django中的cbv里面,添加裝飾器是有不一樣的地方的,它需要把裝飾器當成參數傳遞給另外一個模塊中的,如下面

from django.views import View
from django.utils.decorators import method_decorator
@method_decorator(csrf_protect)
class Foo(View):
    def get(self,request):
        pass

    def post(self,request):
        pass

django 版本為1.913的導入View是這樣的:from django.views.generic.base import View

也可以通過下面的方式加
CSRF(XSRF)和CBV的介紹和防護
還可以指定那個添加
CSRF(XSRF)和CBV的介紹和防護

也可以通過dispatch來全部加上(cbv 的原理dispatch)
CSRF(XSRF)和CBV的介紹和防護

注意針對csrf,只能添加到類上面

ajax發送csrftoken

第一種方法

ajax提交數據時候,攜帶csrf。值獲取到,然后通過data攜帶
CSRF(XSRF)和CBV的介紹和防護

通過cookie

需要插件jquery.cookies.js插件
$.cooike('csrftocken')這個是獲取,擔任也可以設置
CSRF(XSRF)和CBV的介紹和防護

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

海城市| 六安市| 西宁市| 旌德县| 屯留县| 德化县| 衡东县| 宁陵县| 南澳县| 兴国县| 昌图县| 宽城| 浙江省| 来安县| 凤冈县| 龙州县| 杨浦区| 贡嘎县| 卢湾区| 治县。| 齐河县| 蒲城县| 北宁市| 余姚市| 桐庐县| 南丰县| 夏津县| 鄱阳县| 枣阳市| 昆明市| 彭州市| 邢台市| 白沙| 买车| 铜川市| 钦州市| 台前县| 庆元县| 奈曼旗| 拉萨市| 义马市|