日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Django框架(26.Django中的CSRF以及登录装饰器)

發(fā)布時間:2024/9/30 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Django框架(26.Django中的CSRF以及登录装饰器) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

CSRF簡介

CSRF全拼為Cross Site Request Forgery,譯為跨站請求偽造。CSRF指攻擊者盜用了你的身份,以你的名義發(fā)送惡意請求。CSRF能夠做的事情包括:以你名義發(fā)送郵件,發(fā)消息,盜取你的賬號,甚至于購買商品,虛擬貨幣轉(zhuǎn)賬......造成的問題包括:個人隱私泄露以及財產(chǎn)安全。

CSRF示意圖如下:

?

如果想防止CSRF,首先是重要的信息傳遞都采用POST方式而不是GET方式,接下來就說POST請求的攻擊方式以及在Django中的避免。

?防止CSRF

1.Django提供了csrf中間件用于防止CSRF攻擊,只需要在test4/settings.py中啟用csrf中間件即可。

2.也可以在from表單后添加 {% csrf_token %}? ,也是可以防止csrf攻擊的

?保護原理

實際是在from表單的后面會生成一傳value屬性的值,一段字符串

說明:當(dāng)啟用中間件并加入標(biāo)簽csrf_token后,會向客戶端瀏覽器中寫入一條Cookie信息,這條信息的值與隱藏域input元素的value屬性是一致的,提交到服務(wù)器后會先由csrf中間件進(jìn)行驗證,如果對比失敗則返回403頁面,而不會進(jìn)行后續(xù)的處理。

登錄裝飾器

def login_required(view_func):'''登錄判斷裝飾器'''# view_args位置參數(shù)(接收位置參數(shù)),view_kwargs關(guān)鍵字參數(shù)(接收關(guān)鍵字參數(shù))def wrapper(request,*view_args,**view_kwargs):# 判斷用戶是否登錄if request.session.has_key("islogin"):# 用戶已登錄view_func(request,*view_args,**view_kwargs)else:# 用戶未登錄return redirect("/login") # 跳轉(zhuǎn)到登錄視圖函數(shù)return wrapper

用的時候可以直接給視圖函數(shù)直接? 使用? @login_required

?

總結(jié)

以上是生活随笔為你收集整理的Django框架(26.Django中的CSRF以及登录装饰器)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。