狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

【W(wǎng)eb開(kāi)發(fā)】瀏覽器不要再用localStorage了,這6種存儲(chǔ)方案既安全又高效

admin
2025年4月1日 23:0 本文熱度 379

localStorage 是瀏覽器中 window 對(duì)象的一個(gè)只讀屬性,主要用于存儲(chǔ)鍵值對(duì),localStorage提供了一種簡(jiǎn)單的API來(lái)存儲(chǔ)鍵值對(duì)數(shù)據(jù),主要包括setItem、getItem、removeItem和clear等方法。它適用于存儲(chǔ)少量需要跨會(huì)話持久化的數(shù)據(jù),存儲(chǔ)上限一般在4MB到10MB之間,具體數(shù)值因?yàn)g覽器而異(例如Chrome、Firefox和Safari等)?。localStorage的數(shù)據(jù)在瀏覽器關(guān)閉后仍然保留,適合長(zhǎng)期存儲(chǔ)數(shù)據(jù),如用戶的偏好設(shè)置和表單數(shù)據(jù)等?。

?
隨著web應(yīng)用復(fù)雜度的增加,安全要求的加強(qiáng),性能等多方面的需求,localStorage 的局限性也愈發(fā)明顯。本文將分享6種 存儲(chǔ)方案  以滿足不同開(kāi)發(fā)場(chǎng)景!

localStorage存在的隱患與局限


1.安全問(wèn)題:

  • 明文存儲(chǔ)localStorage的數(shù)據(jù)以明文形式存儲(chǔ),易受 XSS(跨站腳本)攻擊。如果惡意腳本注入頁(yè)面,可以直接讀取所有數(shù)據(jù)。

  • 無(wú)自動(dòng)加密:敏感信息(如 Token、用戶憑證)若未手動(dòng)加密,容易被竊取。


2.功能限制

    • 僅支持字符串:復(fù)雜數(shù)據(jù)需手動(dòng)序列化(如JSON.stringify),增加額外處理成本。

    • 同步操作:讀寫是同步的,可能阻塞主線程,影響頁(yè)面性能(尤其在低端設(shè)備或大數(shù)據(jù)量時(shí))。

    • 存儲(chǔ)容量限制:通常為 5MB(不同瀏覽器有差異),無(wú)法滿足大規(guī)模數(shù)據(jù)需求。

3.應(yīng)用場(chǎng)景局限

  • 僅限同源頁(yè)面共享:無(wú)法跨域或跨標(biāo)簽頁(yè)同步數(shù)據(jù)。

  • 無(wú)過(guò)期機(jī)制:需手動(dòng)清理數(shù)據(jù),缺乏類似 Cookie 的自動(dòng)過(guò)期功能。

更安全、高效的6種替代方案

1. IndexedDB 


?IndexedDB?是一種在瀏覽器中用于存儲(chǔ)大量結(jié)構(gòu)化數(shù)據(jù)的底層API,屬于NoSQL數(shù)據(jù)庫(kù)。它允許開(kāi)發(fā)者在用戶的瀏覽器中存儲(chǔ)數(shù)據(jù),而無(wú)需依賴外部服務(wù)器。IndexedDB使用鍵值對(duì)的方式存儲(chǔ)數(shù)據(jù),并通過(guò)索引實(shí)現(xiàn)對(duì)數(shù)據(jù)的高性能搜索?


  • 特點(diǎn)

    • 支持結(jié)構(gòu)化數(shù)據(jù)(對(duì)象存儲(chǔ))、大容量存儲(chǔ)(通常數(shù)百 MB 甚至更多)。

    • 異步操作,不阻塞主線程。

    • 支持事務(wù)、索引查詢和復(fù)雜查詢。


  • 適用場(chǎng)景

    • 需要離線功能的 PWA(漸進(jìn)式 Web 應(yīng)用)。

    • 存儲(chǔ)大量結(jié)構(gòu)化數(shù)據(jù)(如用戶日志、緩存文件)。


安全建議

仍需避免存儲(chǔ)敏感信息,必要時(shí)加密數(shù)據(jù)。

2. HTTP-only Cookies(服務(wù)端標(biāo)記)

?HTTP-only Cookie?是一種特殊的Cookie,其主要安全特性在于它只能被服務(wù)器讀取和修改,而不能被瀏覽器中的其他程序(如JavaScript)讀取或修改。這種特性使得HTTP-only Cookie能夠有效地防止跨站腳本攻擊(XSS)和其他惡意腳本的攻擊,保護(hù)用戶的個(gè)人信息和會(huì)話信息?


特點(diǎn)

    • 通過(guò) HttpOnly 和 Secure 標(biāo)記防止 XSS 和中間人攻擊。

    • HttpOnly:禁止 JavaScript 讀取,僅服務(wù)端可操作。

    • Secure:僅通過(guò) HTTPS 傳輸。

適用場(chǎng)景

  • 存儲(chǔ)會(huì)話 ID 或身份驗(yàn)證 Token。

缺點(diǎn)

  • 容量?。s 4KB),不適合存大數(shù)據(jù)。


3. 服務(wù)端存儲(chǔ)(數(shù)據(jù)庫(kù) + 緩存)


?服務(wù)端存儲(chǔ)?是指在服務(wù)器上用于存儲(chǔ)和管理數(shù)據(jù)的資源,主要包括數(shù)據(jù)庫(kù)和緩存。服務(wù)端存儲(chǔ)的主要作用是確保數(shù)據(jù)的持久存儲(chǔ)和高效訪問(wèn)。


  • 特點(diǎn)

    • 敏感數(shù)據(jù)(如用戶個(gè)人信息)直接存儲(chǔ)在后端數(shù)據(jù)庫(kù)(如 PostgreSQL、Redis)。

    • 通過(guò) HTTPS 加密傳輸,前端僅保留臨時(shí) Token。

  • 適用場(chǎng)景

    • 需要高安全性的用戶數(shù)據(jù)管理。


  • 優(yōu)勢(shì)

    • 完全控制數(shù)據(jù)權(quán)限和安全策略。


4.現(xiàn)代瀏覽器 API


  • Cache API

    • 專為緩存網(wǎng)絡(luò)請(qǐng)求設(shè)計(jì)(常用于 Service Worker)。

    • 適合存儲(chǔ)靜態(tài)資源(HTML/CSS/JS)或 API 響應(yīng)。


  • File System Access API

    • 允許瀏覽器直接讀寫本地文件系統(tǒng)(需用戶授權(quán))。

    • 適合處理大型文件(如編輯器、媒體應(yīng)用)。


5. 狀態(tài)管理庫(kù)(如 Redux、Vuex)


  • 特點(diǎn)

    • 內(nèi)存級(jí)存儲(chǔ),讀寫速度快。

    • 結(jié)合持久化插件(如 redux-persist)可定期同步到安全存儲(chǔ)(如 IndexedDB)。

  • 適用場(chǎng)景

    • 單頁(yè)應(yīng)用(SPA)的臨時(shí)狀態(tài)管理。


6. 加密存儲(chǔ)方案


  • Web Cryptography API

    • 在客戶端加密數(shù)據(jù)后再存儲(chǔ)到 localStorage 或 IndexedDB。

    • 密鑰由服務(wù)端動(dòng)態(tài)下發(fā),避免硬編碼在前端。


  • 示例流程

    • 1.用戶登錄時(shí),服務(wù)端生成加密密鑰。

    • 2.前端用密鑰加密數(shù)據(jù)后存儲(chǔ)。

    • 3.密鑰通過(guò) HTTPS 傳輸,且不持久化在客戶端。


如何選擇存儲(chǔ)方案?

場(chǎng)景推薦方案
敏感信息(如 Token)
HTTP-only Cookie + 服務(wù)端存儲(chǔ)
大量結(jié)構(gòu)化數(shù)據(jù)
IndexedDB
靜態(tài)資源緩存
Cache API + Service Worker
臨時(shí)狀態(tài)管理
內(nèi)存存儲(chǔ)(Redux/Vuex)
需要高安全性的離線數(shù)據(jù)
IndexedDB + 客戶端加密


總結(jié)

  • 不用localStorage 的核心原因:安全性差、同步阻塞、容量限制。

  • 替代方案的核心優(yōu)勢(shì)

    • 安全:通過(guò)服務(wù)端存儲(chǔ)、HTTP-only Cookie、加密 API 隔離風(fēng)險(xiǎn)。

    • 性能:異步操作(如 IndexedDB)避免阻塞主線程。

    • 擴(kuò)展性:支持大數(shù)據(jù)量和復(fù)雜查詢。

實(shí)際開(kāi)發(fā)中,通常會(huì)結(jié)合多種方案(如 Cookie 存 Token + IndexedDB 存離線數(shù)據(jù) + 內(nèi)存狀態(tài)管理),同時(shí)通過(guò)代碼混淆、CSP 策略、輸入過(guò)濾等手段進(jìn)一步防御 XSS 攻擊。


閱讀原文:原文鏈接


該文章在 2025/4/2 16:39:06 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved