cookie概念: 是由伺服器生成,儲存在瀏覽器端的一小段文字資訊。
cookie特點:
1) cookie是以鍵值對進行儲存的。
3) cookie是基於網域名稱安全的。
4) cookie是有過期時間的,預設關閉瀏覽器之後過期。
設定cookie: set_cookie(key, value, max_age='過期時間')。
讀取cookie: request.cookies(儲存瀏覽器發過來的cookie資訊)
刪除cookie. delete_cookie(key)
session概念: 儲存在伺服器端的文字資訊,預設儲存在伺服器端的django_session表中。
sesssion特點:
1) session也是以鍵值對進行儲存的。
2) session依賴於cookie, session資訊對應的唯一標識預設儲存在sessionidcookie中。
3) session是有過期時間的,預設兩周之後過期。
設定session: request.session['鍵']='值'
獲取session: 變數 = request.session['鍵']
刪除session: request.session.flush()
擴充套件:2) session的儲存需要借助於middleware_classes中的
'django.contrib.sessions.middleware.sessionmiddleware'中介軟體。
3) 可以通過session_engine配置session儲存在什麼地方。
csrf跨站請求偽造:
如果使用者登入了**,並且未退出, 點選了偽造鏈結,瀏覽器就會以登入使用者的身份去訪問a**,可能會造成密碼的的修改和財產的損失等,這就是csrf請求偽造(跨站請求偽造)。
django框架針對post提交資料具有csrf的防護驗證,如果需要使用django的csrf防護,
需要按以下步驟:
1) 開啟django配置檔案中的csrf防護中介軟體。
2)在使用表單post提交時,需要在表單中加上標籤。
如果是ajax post請時,也需要在頁面上加上標籤。
防禦原理:
1) 訪問頁面時,django會把標籤替換為乙個名為csrfmiddlewaretoken的隱藏域。
2)同時django**會讓瀏覽器儲存乙個名為csrftoken的cookie資訊。
3)在進行表單提交或者ajax post提交時,csrfmiddlewaretoken隱藏域的值和crsftoken cookie的值
都會被提交給伺服器,django框架中的csrf防護中介軟體會對這兩個值進行對比,如果一致,則csrf驗
正通過,可以進行後續操作,否則出現403錯誤。
中介軟體流程
request對像產生: 請求到達django框架內部時,django框架會把請求報文中的請求資訊封裝在request物件的屬性中
===>依次從上到下呼叫middleware_classes註冊中介軟體類中的process_request函式
===>
根據請求的url位址進行匹配
===>依次從上到下呼叫middleware_classes註冊中介軟體類中的process_view函式
===>
呼叫檢視函式
===>依次從下到上呼叫middleware_classes註冊中介軟體類中的process_view函式
cookie值得修改和cookie的壽命
1.方法一 建立乙個同名得cookie 接著修改 cookie cookie new cookie key newyasuo 2.設定cookie物件 通知客戶端儲存 response.addcookie cookie response.getwriter write cookie修改成功!2.方法...
cookie和session和token是什麼?
什麼是session?什麼是cookie?什麼是token?1 cookie?由於http是一種無狀態協議,伺服器沒有辦法單單從網路連線上面知道訪問者的身份,為了解決這個問題,就誕生了cookie cookie實際上是一小段的4k文字資訊。客戶端請求伺服器,如果伺服器需要記錄該使用者狀態,就使用re...
cookie設定和刪除
在網上找了很多資料,都發現有問題,後面通過多次測試,終於搞定,把 貼出了,希望對大家所有幫助 設定cookie string loginname test string pswd test cookie cookie new cookie username urlencoder.encode log...