Tornadao Cookie

cookie的詳細介紹、Tronado帶簽名的cookie原理、基於cookie實現用戶驗證javascript

cookie詳細介紹

cookie本質就是存於瀏覽器的 鍵值對html

特性:前端

每次http請求服務端的時候,都會帶着這個cookie去。java


tronado 操做cookie

在tronado中操做cookie的方法:jquery

  • self.cookies 獲取全部的cookie。
  • self.set_cookie() 設置cookie。
  • self.get_cookie() 獲取cookie。

每一個方法具體參數這個不討論。瀏覽器


前端經過javascript獲取cookie

dcument.cookie:在前端經過此方法能夠在瀏覽器中獲取全部的cookie、設置或獲取指定。安全

說明:cookie

一、此方法獲取的cookie是一個普通的字符串,而咱們要想以對象的方式獲取cookie中key值對應的值的話。得使用特殊的方法將字符串轉換成對象。而後便能直接經過對象點的方式來獲取了。dom

二、這一步的操做,無論是在前臺仍是在後臺,語言都爲咱們提供了特定的方式,來處理此類型的字符串對象。ui

設置cookie:

document.cookie = "k1=v1";

一樣能夠設置cookie做用的路徑,過時時間等。

  • path:設置cookie做用的時間。
  • expires:設置cookie的過時時間,注:在jquery中設置的時候必需要將指定時間轉換成UTC的格式時間才能產生對應的效果。
  • domain:指定域名下的cookie。
  • secure:https使用。


tronado帶簽名cookie

咱們在實際操做中會常常用到cookie,cookie也會涉及某些安全信息,若是咱們設置的cookie太過簡單的話,可能致使信息遺漏,別人能夠輕鬆僞造信息來執行某些操做。設置過去簡單的cookie是很不安全的。

所以在實際運用中,咱們要儘可能將咱們的cookie設置嚴格、複雜點。提升安全性。


在tronado內部中有一種帶簽名的cookie,也能夠叫 「cookie加鹽」。就是爲了提升cookie的安全。


步驟

以往瀏覽器中添加cookie k=v1 來講:

一、會對咱們輸入的值v1進行base64位的加密。(這個加密是能夠被反解的)

二、將base64位的結果結合 「|」後面base64爲結果加當前時間的時間戳再加指定的字符串。

三、在將第二步的結果總體進行一個相似MD5加密的加密方式,這步操做後返回一個新的加密字符串。

四、而後會將base64的結果,綜合加密的字符串結果和當前加密使用的時間戳,經過「|」連接起來,一塊兒寫到cookie中。

image

這樣當用戶第一次訪問的時候,服務端就會個瀏覽器端設置一個這樣的cookie,之後瀏覽器端再來請求的時候,都會帶着這個cookie。

當瀏覽器再來訪問的時候,帶着這個cookie過來,服務端就會經過此cookie驗證用戶cookie是否合法,合法的話經過指定字段,就能在服務端獲取對應用戶的指定信息。


後臺操做:

一、首先經過cookie獲取對應的cookie,而後經過字符串分割,以「|」分割。獲取第一段前臺 base64的結果。

二、獲取第二段爲加密後的字符串組合,同時也可獲取加密時使用的時間戳。

三、自定義字符串,自己在服務端設置的,因此能夠在服務端直接獲取。

四、而後將指定的字段組合,再進行一次加密,而後和從cookie中獲取的第二段字符串進行比較。

若是不匹配,則說明在請求帶過來的被修改過,咱們能夠進行對應不合法的方法處理。若是成功,則表示用戶是正確的,則作對應成功的方法處理。

相關文章
相關標籤/搜索