日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

使用浏览器的 Local Storage 真的安全吗?

發(fā)布時間:2023/12/19 HTML 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用浏览器的 Local Storage 真的安全吗? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

LocalStorage 是一個 HTML5 網(wǎng)絡(luò)存儲對象,用于將數(shù)據(jù)存儲在客戶端——即本地,在用戶的計算機(jī)上。 本地存儲的數(shù)據(jù)沒有到期日期,并且會一直存在,直到被刪除。 (相比之下,會話存儲是另一個 HTML5 網(wǎng)絡(luò)存儲 API,它會在瀏覽器關(guān)閉時刪除存儲的數(shù)據(jù)。)

本地存儲是純 JavaScript。 同樣,雖然它仍然在用戶的設(shè)備上生成純文本文檔,但本地存儲也允許存儲多達(dá) 5MB 的數(shù)據(jù)(與 4KB 的 cookie 相比)。 這使得本地存儲的許多有趣應(yīng)用成為可能,例如管理內(nèi)容以減少從服務(wù)器請求內(nèi)容的需要,加快加載時間。

只讀的localStorage 屬性允許你訪問一個Document 源(origin)的對象 Storage;存儲的數(shù)據(jù)將保存在瀏覽器會話中。localStorage 類似 sessionStorage,但其區(qū)別在于:存儲在 localStorage 的數(shù)據(jù)可以長期保留;而當(dāng)頁面會話結(jié)束——也就是說,當(dāng)頁面被關(guān)閉時,存儲在 sessionStorage 的數(shù)據(jù)會被清除 。

localStorage 最主要的特點是:

  • 在同源的所有標(biāo)簽頁和窗口之間共享數(shù)據(jù)。
  • 數(shù)據(jù)不會過期。它在瀏覽器重啟甚至系統(tǒng)重啟后仍然存在。

sessionStorage 對象的使用頻率比 localStorage 對象低得多。

屬性和方法是相同的,但是它有更多的限制:

  • sessionStorage 的數(shù)據(jù)只存在于當(dāng)前瀏覽器標(biāo)簽頁。
    具有相同頁面的另一個標(biāo)簽頁中將會有不同的存儲。
    但是,它在同一標(biāo)簽頁下的 iframe 之間是共享的(假如它們來自相同的源)。
  • 數(shù)據(jù)在頁面刷新后仍然保留,但在關(guān)閉/重新打開瀏覽器標(biāo)簽頁后不會被保留。

使用 local storage 的一個例子:

創(chuàng)建一個 textarea 字段,每當(dāng)其值發(fā)生變化時,可以將其“自動保存”。

因此,如果用戶不小心關(guān)閉了頁面,然后重新打開,他會發(fā)現(xiàn)之前未完成的輸入仍然保留在那里。

像這樣:

<!doctype html> <textarea style="width:200px; height: 60px;" id="area" placeholder="Write here"></textarea> <br> <button onclick="localStorage.removeItem('area');area.value=''">Clear</button> <script>area.value = localStorage.getItem('area');area.oninput = () => {localStorage.setItem('area', area.value)}; </script>

如果使用得當(dāng),本地存儲可以成為功能強(qiáng)大的輕量級數(shù)據(jù)存儲解決方案,但并非沒有問題。 以下是使用本地存儲可能不是一個好主意的幾個原因,具體取決于存儲的內(nèi)容。

Why using LocalStorage might be a bad idea

本地存儲本質(zhì)上并不比使用 cookie 更安全。理解了這一點后,該對象可用于存儲從安全角度來看無關(guān)緊要的數(shù)據(jù)。但是,以下是重新考慮使用本地存儲的幾個原因。

1. 如果一個站點容易受到 XSS 攻擊,LocalStorage 是不安全的

也許對使用本地存儲的最大反對是與之相關(guān)的安全漏洞。本地存儲具有許多與 cookie 相同的特征,包括相同的安全風(fēng)險。其中之一是對跨站點腳本的易感性,它會竊取 cookie,讓黑客偽裝成具有站點登錄會話的用戶。將諸如密碼之類的敏感內(nèi)容存儲在本地存儲文件中實際上可以簡化黑客的過程,因為他們不需要將 cookie 加載到自己的瀏覽器中。

2. 開發(fā)者無法控制本地存儲的數(shù)據(jù)

使用本地存儲,沒有服務(wù)器端存儲——沒有開發(fā)人員可以控制的數(shù)據(jù)庫。由于一些原因,這可能會出現(xiàn)問題,其中之一是開發(fā)人員無法在存儲代碼或信息后對其進(jìn)行更新。用戶需要手動刪除文件,這需要首先找到它。或者,他們需要擦除瀏覽器緩存,從而丟失所有存儲的數(shù)據(jù)。

3.用戶清除其緩存

定期清除瀏覽器緩存有助于 cookie 更有效地發(fā)揮作用,這通常是人們在解決瀏覽器問題(如頁面加載不正確)時采取的第一步。

當(dāng)使用本地存儲來支持站點的功能時,這是一個問題。如果用戶清除瀏覽器緩存,該信息將永久丟失。這使得本地存儲作為備用數(shù)據(jù)庫更有用。

LocalStorage 的替代方案

根據(jù)信息是否敏感,確實存在一些本地存儲的替代方案。不想使用本地存儲的開發(fā)人員可以嘗試下列這些方式:

對敏感信息使用服務(wù)器端會話

當(dāng)涉及到敏感信息時,將數(shù)據(jù)存儲在服務(wù)器上有幾個優(yōu)點。首先,開發(fā)人員可以保證其安全性,并且對單個會話有更多的控制權(quán)(如有必要,它們可以立即終止)。其次,數(shù)據(jù)在架構(gòu)內(nèi)受到保護(hù),暴露的機(jī)會更少。

對于非敏感信息,選擇 IndexedDB

對于一心使用客戶端會話的開發(fā)人員,IndexedDB 使開發(fā)人員能夠構(gòu)建可以本地存儲的應(yīng)用程序。盡管它沒有像本地存儲那樣廣泛的瀏覽器支持,但它對于本地存儲非敏感數(shù)據(jù)仍然很有用。 IndexedDB 與本地存儲相比有一個主要優(yōu)勢,因為它是一個成熟的數(shù)據(jù)庫,能夠處理更多類型的數(shù)據(jù)。

明智地處理數(shù)據(jù)存儲

如果精心部署,本地存儲可以提高站點性能并幫助創(chuàng)建更多輕量級應(yīng)用程序。 但是,絕不能將本地存儲用于敏感信息,例如密碼或個人信息。 這樣做會產(chǎn)生安全風(fēng)險。

對于需要加密和安全的信息,還有其他有效且方便的解決方案,例如服務(wù)器端會話。 由于網(wǎng)絡(luò)安全是一個如此重要的問題,因此沒有必要冒險。 因此,在使用 LocalStorage 時,請慎之又慎。

更多Jerry的原創(chuàng)文章,盡在:“汪子熙”:

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的使用浏览器的 Local Storage 真的安全吗?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。