Cookie和Session差別是什麼?
Cookie是瀏覽器中的一個屬性,Cookie的值被伺服器設定了以後,日後瀏覽器的每次請求當中夾帶著這個Cookie值。
。
Session則是一段時間,一段被伺服器認出使用者狀態的時間。
Cookie與Session的優缺點
Cookie缺點:
用戶端可以完全控制cookie,伺服器傳給用戶端的cookie,用戶都可以被看到,並可以任意刪除、竄改。XSS攻擊有一個技術是惡意的javascript腳本可以修改cookie的內容。cookie不能存入太多資料,會惹惱用戶。
結論: session會比cookie好用,雖然session也是建立在cookie的基礎之上,但session在做法上較為簡單、安全,且不用擔心被濫用。
在Express裡面的cookie
0)為了使Cookie更安全,使用cookie secret,它是一個只被伺服器知道的字串,要把它放到環境檔中。
如果使用Express來開發伺服器端程式碼的話,必須使用cookie-parser中介函式。
接著回應物件(res)就能設定cookie了(cookie的名稱,cookie值,cookie細部設定):
伺服器刪除cookie:
res.clearCookie('jwt')
cookie不僅單純是值而已,還能進行設定,以下是設定cookie時可以指定的選項:
在瀏覽器對伺服器發出請求後,伺服器可以存取請求物件(req)中的cookie屬性值:
檢查Cookie
打開Chrome按下F12,選擇Application標籤,可以看到左側有個cookies,你會看到有關你正在訪問的網站的所有cookie,你可以刪除它們如果你想要的話XD
在Express裡面的Session
組態物件選項 :
* resave
* saveUninitialized
* secret
* key
* story
** 設定session**
req.session.username = 'luke'
** 存取session**
const username = req.session.username
** 刪除session** (使用JavaScript的delete)
delete req.session.username