Cookie与Session

Cookie
Cookie 是伺服器(Server)传送给浏览器(Client)的一小片段资料,并请浏览器保存起来,以便往后向相同的伺服器发送请求时,附上这 Cookie 的资料。

Cookie 常见用途
1. 储存和追蹤使用者行为
2. 储存用户登入、购物车等伺服器所需的资讯
3. 储存使用者设定和偏好等

基本用户登入流程範例
1. 使用者透过浏览器登入画面登入
2. 伺服器端通过验证后,可以将使用者「已经登入」的资讯附在 Cookie 中回传,并请浏览器保存起来
3. 往后,每当浏览器对伺服器发出请求时,会一併附上存有使用者「已经登入」状态资讯的 Cookie 给伺服器
4. 伺服器透过 Cookie 就能辨识这位使用者已经通过验证

使用 Cookie 传送重要资讯的安全性隐忧
透过 Cookie,我们的确达成目标,让伺服器可以在往后透过客户端发出的请求,辨识使用者及其登入状态,非常方便。然而这些资讯其实用户是有机会可以在浏览器中修改的,因此使用者能透过串改 Cookie 上的Value

因此儘量避免将敏感资讯透过 Cookie 存在客户端

Session
Session 会将使用者的敏感资讯存放在伺服器端,并创建一个相对应且独特的 ID(Session ID),在回传给客户端的 Cookie 中一併附上,未来客户端只要附上含有这个 Session IDCookie 给伺服器,伺服器就能匹配相对应的 Session

透过实例来了解Cookie和Session的差别吧~
试想 Cookie是一张领餐的号码牌,而Session是一张数位会员卡,可以将你的个人资料、交易记录、餐点细节与喜好...等,都记录在你的数位会员卡里,让系统能够快速辨别你的身分,解决号码牌遗失的问题。

因此重要的资讯,并不建议存放在客户端,容易遭到有心人士窜改
可改存放在Session内,相对的安全许多!

再专案中安装Session吧

载入Session

安装express-session套件

$ npm install express-session

引入 express-session 套件

const session = require('express-session')

官方範例


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章