中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

Django框架會話技術的示例分析

發布時間:2021-09-03 13:56:51 來源:億速云 閱讀:153 作者:小新 欄目:開發技術

這篇文章主要介紹了Django框架會話技術的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

具體如下:

會話技術

1、Cookie

  • 客戶端會話技術(數據存儲在客戶端)

  • 以key-value的形式進行存儲

  • cookie的操作都是通過Response來實現的

  • 典型場景

    • 購物車

    • 登錄信息

  • 支持過期時間

  • Cookie清除策略

    • 默認關閉瀏覽器時cookie自動清除

    • 配置Cookie過期時間

    • max-age=0 關閉就失效

    • max-age=None 永久有效

    • max-age = int 單位秒

    • expires 過期時間,和max-age功能基本一致

  • 用戶登出,就是清除了cookie(令牌)

2、Session

  • 服務端會話技術

  • Session依賴于Cookie

    • 將Session在數據庫中的session_key,當作sessionid,存儲在cookie中

  • Session數據存儲在數據庫中,并且做了基本的數據安全處理(base64編碼)

3、Token

  • 服務端會話技術

  • 相當于手動實現的session

  • 值應該是唯一的

    • 要通過特定算法保證唯一

    • 時間

    • ip

    • 域名

    • 網卡 mac

    • 隨機數

4、解決痛點

  • 解決短連接無法保存用戶狀態的問題

  • 延長了請求的生命周期

  • 用戶管理實例

    • 密碼對誰都是不透明的

    • 用戶注冊

    • 將數據存儲到數據庫

    • 數據安全

    • 用戶登陸

    • 將登陸提交過來的信息和數據庫內的信息進行校驗

    • 返回不成功結果要刻意模糊概念

    • 用戶信息

    • 根據用戶的唯一標識,去獲取用戶

    • 用戶退出

    • 清除令牌

    • 清理cookie,session,或 token

5、數據安全

  • 策略

    • 服務器的數據對任何人來說都應該是不可見的(不透明)

    • 可以使用常見的摘要算法對數據進行摘要(md5,sha)

    • 在所有數據驗證的地方都加上安全保護措施

6、摘要算法

  • hashlib

    • 輸出默認都是128位二進制數

    • 32位16進制數

    • 哪怕【消息原文】被改動一丁點,【篡改版消息生成的消息摘要】都會與【原始消息所生成的消息摘要】的大相徑庭

    • sha

    • md5

    • 用來驗證數據完整性(不被篡改)

    • 統一輸出

    • 單向不可逆

7、UUID

  • 唯一標識

  • 納秒級的時間

    • 1ns 創建 1m個id

  • mac 地址

  • 機器編碼

  • 隨機數

  • uuid

uuid1()
uuid3()
uuid4()
uuid5()

8、常用API

  • 生成消息摘要

def generate_password(password):
  #定義算法
  sha = hashlib.sha512()
  #更新算法內容區(密碼字節)
  sha.update(password.encode("utf-8"))
  #使用算法生成摘要
  return sha.hexdigest()
  • cookie

response.set_cookie("uname", username)
response.set_cookie("uname", username, max_age=30)
response.set_cookie("uname", username, expires=timedelta(minutes=1))
uname = request.COOKIES.get('uname',None)
response.delete_cookie("uname")
  • 助記

    • 操作客戶端唯有通過Response對象

    • 方法無非get,set,delete

  • session

- uname = request.session.get('uname')
- request.session['uname'] = username
- request.session.flush()
 - 同時清除cookie 和 session
- del request.session['uname']
  • 助記

    • session是存在于服務端本地的,而Request的COOKIE當中存有sessionid,因此通過Request對象去關聯用戶的session

    • 方法無非get,set,del,flush

  • token

response.set_cookie("utoken", token)
utoken = request.COOKIES.get("utoken")

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Django框架會話技術的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

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

AI

金昌市| 兖州市| 吉安县| 连云港市| 南漳县| 罗田县| 安福县| 通道| 资中县| 衡南县| 阿坝县| 侯马市| 健康| 峡江县| 叶城县| 南阳市| 乳山市| 道真| 于田县| 客服| 泾阳县| 黔南| 略阳县| 垣曲县| 克什克腾旗| 慈溪市| 苍山县| 龙江县| 安国市| 台东市| 册亨县| 黄石市| 广德县| 翁牛特旗| 哈密市| 芦山县| 都江堰市| 孟津县| 灵台县| 屏边| 宣城市|