Flask學習筆記 4 cookie

2022-09-23 03:02:10 字數 2369 閱讀 4658

cookie為“小型文字檔案”,是某些**為了辨別使用者身份,進行session跟蹤而儲存在使用者本地終端上的資料(通常經過加密),由使用者客戶端計算機暫時或永久儲存的資訊。

flask中通過set_cookie()方法來設定cookie。

這個方法有很多引數:

1、key/value:設定cookie的名稱及相對應的字串值,這是必選項;

2、max-age: 與expires作用相同,用來告訴瀏覽器此cookie多久過期(單位是秒),而不是一個固定的時間點。正常情況下,max-age的優先順序高於expires;

3、expires:設定cookie的生存期。有兩種儲存型別的cookie:會話性與永續性。expires屬性預設時,為會話性cookie,僅儲存在客戶端記憶體中,並在使用者關閉瀏覽器時失效;永續性cookie會儲存在使用者的硬碟中,直至生存期到或使用者直接在網頁中單擊“登出”等按鈕結束會話時才會失效,這個值是gmt時間格式;

4、path:定義了web站點上可以訪問該cookie的目錄;

5、domain屬性:指定了可以訪問該 cookie 的 web 站點或域。cookie 機制並未遵循嚴格的同源策略,允許一個子域可以設定或獲取其父域的 cookie。當需要實現單點登入方案時,cookie 的上述特性非常有用,然而也增加了 cookie受攻擊的危險,比如攻擊者可以藉此發動會話定置攻擊。因而,瀏覽器禁止在 domain 屬性中設定.org、.com 等通用頂級域名、以及在國家及地區頂級域下注冊的二級域名,以減小攻擊發生的範圍;

6、secure屬性:指定是否使用https安全協議傳送cookie。使用https安全協議,可以保護cookie在瀏覽器和web伺服器間的傳輸過程中不被竊取和篡改。該方法也可用於web站點的身份鑑別,即在https的連線建立階段,瀏覽器會檢查web**的ssl證書的有效性。但是基於相容性的原因(比如有些**使用自簽署的證書)在檢測到ssl證書無效時,瀏覽器並不會立即終止使用者的連線請求,而是顯示安全風險資訊,使用者仍可以選擇繼續訪問該站點。由於許多使用者缺乏安全意識,因而仍可能連線到pharming攻擊所偽造的**;

7、httponly 屬性 :用於防止客戶端指令碼通過document.cookie屬性訪問cookie,有助於保護cookie不被跨站指令碼攻擊竊取或篡改。但是,httponly的應用仍存在侷限性,一些瀏覽器可以阻止客戶端指令碼對cookie的讀操作,但允許寫操作;此外大多數瀏覽器仍允許通過xmlhttp物件讀取http響應中的set-cookie頭;

flask中cookie的新增和刪除:

1from flask import

flask,request,response

2from datetime import

datetime,timedelta)/

')5def

index():

6 res = response('

這是主頁,已經設定cookie')

7#exp = datetime(2020,4,25)

8 exp = datetime.now() + timedelta(days=1,hours=16) #

兩天時間

9 res.set_cookie("

username

","wangyi

",max_age=60)

10 res.set_cookie("

age","

18",expires=exp)

11return

res12

"""13

注意:14

1、max_age和expires同時設定時以max_age為標準;

152、都不寫則瀏覽器會話結束時自動刪除(關閉整個瀏覽器則會話結束);

163、cookie預設只能在主域名下使用,傳入引數domain後才能在子域名下使用

174、expires中使用的是格林威治時間;

18"""

19/profile")

21def

peofile():

22return

"這是個人中心頁"23

/del")

25def

del_cookie():

26 res = response('

刪除cookie')

27 res.delete_cookie("

username")

28return

res29

30if

__name__ == '

__main__':

Flask寫web時cookie的處理

flask是一個微型web開發框架,別看他微型,在github上排名還是挺高的。 a microframework based on werkzeug jinja2 and good intentions 因為他微型,容易掌握,所以對於一些控制慾很強的人,比如我,就會放棄強大的dinjgo,而轉向f...

4 Flask實戰第4天 自定義url轉換器

url傳參可以限定引數的資料型別,例如 限定user id資料型別為int user defmy list user id return 您輸入的user id為 format user id 當我們傳遞的引數不是int型別的時候,頁面訪問該url就會返回404錯誤,我們可以來看下flask是如何定...

Flask WTF 配置 驗證及日誌P4

引數說明 wtf csrf enabled 設定為false以禁用所有csrf保護 wtf csrf check default 使用csrf保護擴充套件時,這可以控制每個檢視是否受到預設保護。預設值為true wtf csrf secret key 用於生成安全令牌的隨機資料。如果未設定,則使用sec...