国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

token與sessionId的區別——學習筆記

liaosilzu2007 / 2909人閱讀

摘要:學開發半年多,之前一直有個疑問為什么要用,好好的用不好嗎其實就是新技術與老技術,但是還是想弄懂這個問題之前一直疑惑,今天搞懂了,整合了一下學習過程,先對比一下與一簡述的生成方式與的生成方式的生成方式瀏覽器第一次訪問服務器時,服務器創建一個,

學開發半年多,之前一直有個疑問:
為什么要用token,好好的用sessionID不好嗎
(其實就是新技術老技術,但是還是想弄懂)
這個問題之前一直疑惑,今天搞懂了,整合了一下學習過程,先對比一下sessionID與token

一、簡述sessionID的生成方式與token的生成方式 1.sessionID的生成方式

瀏覽器第一次訪問服務器時,服務器創建一個session,同時生成一個唯一的會話key,即sessionID。接著sessionID及session分別作為key和value保存到緩存中,也可以保存到數據庫中,然后服務器把sessionID以cookie的形式發送給瀏覽器,瀏覽器下次訪問服務器時直接攜帶上cookie中的sessionID,服務器再根據sessionID找到對應的session進行匹配
這里我們注意到兩點:1.sessionID會自動由瀏覽器帶上 2.session是需要存儲空間的

2.token的生成方式

瀏覽器第一次訪問服務器時,服務器根據傳過來的唯一標識userId,通過一些算法,加一個密鑰,生成一個token,接著通過base64編碼將token返回給客戶端。客戶端將token保存起來,下次請求時需要帶著token,服務器收到請求后,用相同的算法和密鑰去驗證token
這里我們注意到兩點:1.token需要代碼才能帶上 2.token可以不需要存儲空間(JWT)(當然也有存入緩存的處理,特別是要進行revoke操作時),通過算法和密鑰驗證

3.區別

以上我們提出來的注意點就可以看出兩點區別了:1.瀏覽器方面,是否直接帶上 2.服務器方面,是否需要存儲空間

二.回答之前的疑問 1.安卓,ios,微信小程序,微信內置瀏覽器上

安卓與ios用原生接口發請求時,每一次創建一個會話(C/S模式)
https://blog.csdn.net/qq_4219...
https://www.cnblogs.com/liuji...

微信小程序通過微信官方提供的登錄能力獲取微信提供的用戶身份標識,快速建立小程序內的用戶體系
https://developers.weixin.qq....

微信內置瀏覽器會對所有請求做代理,導致出去的ip不固定
https://blog.csdn.net/wangjun...

2.安全問題上,防止CSRF攻擊

(原來瀏覽器加載image標簽中的地址也會發送sessionID的)
這里對技術機制沒有透徹的了解,不敢隨意翻譯而誤導,大家看一下以下的段落吧
摘自https://guides.rubyonrails.or...
Cross-Site Request Forgery (CSRF)
This attack method works by including malicious code or a link in a page that accesses a web application that the user is believed to have authenticated. If the session for that web application has not timed out, an attacker may execute unauthorized commands.
In the session chapter you have learned that most Rails applications use cookie-based sessions. Either they store the session ID in the cookie and have a server-side session hash, or the entire session hash is on the client-side. In either case the browser will automatically send along the cookie on every request to a domain, if it can find a cookie for that domain. The controversial point is that if the request comes from a site of a different domain, it will also send the cookie. Let"s start with an example:

Bob browses a message board and views a post from a hacker where there is a crafted HTML image element. The element references a command in Bob"s project management application, rather than an image file: By viewing the post, the browser finds an image tag. It tries to load the suspected image from www.webapp.com. As explained before, it will also send along the cookie with the valid session ID.
The web application at www.webapp.com verifies the user information in the corresponding session hash and destroys the project with the ID 1. It then returns a result page which is an unexpected result for the browser, so it will not display the image.
Bob doesn"t notice the attack - but a few days later he finds out that project number one is gone.

It is important to notice that the actual crafted image or link doesn"t necessarily have to be situated in the web application"s domain, it can be anywhere - in a forum, blog post or email.
CSRF appears very rarely in CVE (Common Vulnerabilities and Exposures) - less than 0.1% in 2006 - but it really is a "sleeping giant" [Grossman]. This is in stark contrast to the results in many security contract works - CSRF is an important security issue.

三.總結

廣義上來說一切維護用戶狀態的技術都是session,然后sessionid與token就是老技術與技術
可是就是想知道為什么
以上內容如有不對請指出

參考資料:

Session,Token相關區別:https://www.cnblogs.com/xiaoz...
基于 Token 的身份驗證:JSON Web Token(附:Node.js 項目):https://ninghao.net/blog/2834
基于 session 和基于 token 的用戶認證方式到底該如何選擇?:https://www.v2ex.com/t/276207
我想知道token和sessionid的區別是什么:https://www.v2ex.com/t/80003
為什么 APP 要用 token 而不用 session 認證?:https://www.v2ex.com/t/148426
移動端開發為什么不采用session而是用token:https://www.zhihu.com/questio...

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/62013.html

相關文章

  • JSON Web Token學習筆記

    摘要:一什么是為什么使用是機制的一種替代方案。這種情況下使用就會有更加方便。的數據結構一般為三部分組成頭部一般包含簽名的算法和令牌的屬性負載實際需要傳遞的數據一般不加密,因此不要把重要信息放在里面簽名部分是對前兩部分的簽名,防止數據篡改。 一、什么是JSON Web Token? 1、為什么使用JSON Web Token JSON Web Token是cookie session機制的一種...

    cangck_X 評論0 收藏0
  • 前端應該知道web登錄

    摘要:客戶端發起非登錄請求時,服務端通過中的找到對應的來知道此次請求是誰發出的。數量隨著登錄用戶的增多而增多,存儲會增加很多。還記得在上家公司做全干工程師的時候,基本從頁面寫到運維,當時做登錄這塊的時候,被session、cookie、token各種概念差點整蒙圈了,上網查詢相關概念,發現很多人都是類似的疑惑,比如:showImg(https://user-gold-cdn.xitu.io/201...

    NervosNetwork 評論0 收藏0
  • 大話javascript 7期:Cookie、Session和Token那些事兒

    摘要:服務器檢查該,以此來辨認用戶狀態。如果為,表示刪除該。防篡改簽名服務器為每個項生成簽名。服務端根據接收到的內容和簽名,校驗內容是否被篡改。算法得到的簽名和請求中數據的簽名不一致,則證明數據被篡改。 一、登錄認證機制 隨著互聯網的不斷發展,無論是網站還是app,一般都會要求用戶注冊/登錄。主要的登錄方式有賬戶密碼登錄、第三方登錄(微信登錄、QQ登錄、微博登錄等) 登錄可分為三個階段(登錄...

    tianren124 評論0 收藏0
  • Laravel學習筆記之Session源碼解析(上)

    摘要:然后中間件使用方法來啟動獲取實例,使用類來管理主要分為兩步獲取實例,主要步驟是通過該實例從存儲介質中讀取該次請求所需要的數據,主要步驟是。 說明:本文主要通過學習Laravel的session源碼學習Laravel是如何設計session的,將自己的學習心得分享出來,希望對別人有所幫助。Laravel在web middleware中定義了session中間件IlluminateSess...

    NervosNetwork 評論0 收藏0

發表評論

0條評論

liaosilzu2007

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<