###### tags: `Cookie & Session` # 優缺點比較 ### 1.Cookie、Session 1. 儲存位置: cookie 存儲於瀏覽器端與電腦緩存大小限制為4K、且每次請求時都會帶上,而 session 存儲於服務端(資料庫,記憶體或是檔案)。 3. 安全性: cookie 的安全性相比於 session 較弱,別人可以分析本地的 cookie 進行修改。 假設 Server 讓 Account = "Jerry" 可以登入, 別人可以修改 cookie 讓自己的 Account = "Merry" 變成 Account = "Jerry"。 3. 使用時機: session:帳號登錄驗證過後,Server端所發的識別證。 cookie:是瀏覽器存放資料的地方,可以存放使用者偏好設定等資料。 :::success ##### Cookie安全三屬性: 1. Secure: cookie 必須通過安全的 HTTPS 連接傳輸。 2. HttpOnly: 防止代碼注入,例如 JavaScript訪問 cookie (document.cookie) 等,來防止 XSS。 3. SameSite: 只接受同網域發送的所有請求來防止CSRF。 Strict: 確保只有網域請求。(只適用金流等需要嚴格把關的網站) Lax: 允許為網域點請求以及用戶操作發起的跨網域請求發送 cookie,例如點擊連結。 ::: ### 2. LocalStorage、SesseionStorage 1. 都是使用 key / value pair 的方式 給值或取值。 2. 大小預設有 5mb~10mb。 3. 每次 request 不會帶上。 4. 儲存時間: LocalStorage 沒有時間限制除非被清除, SesseionStorage 為關閉瀏覽器或分頁時自動清除。 5. 使用時機: LocalStorage 可用在儲存我的最愛,SesseionStorage 可用在儲存表單的下一步功能。