localStorage和cookies之间的区别
Same Origin Policy保护cookie和localStorage不受不相关域的访问.
区别在于localStorage只能通过JavaScript访问,而cookie可以通过JavaScript1访问,并随每个HTTP请求一起发送.
使用localStorage而不是cookie没有太大的安全优势.两者之间的区别在于目标不同:localStorage可用于您只在JavaScript中使用的内容,而Cookie可用于在服务器上存储您需要的内容(以及).
任何有权访问用户计算机浏览器的人都可以访问这两者,并且可以通过在网页上执行的JavaScript访问localStorage和cookie. (对于后者,请参阅下面的例外情况.)
如果您在browser console中输入localStorage或document.cookie,则可以看到此信息.
>您可以在cookie上设置HTTPOnly标志,以便无法通过JavaScript访问它.
如何使用localStorage
由于已经有很多关于使用localStorage的信息,我只会参考两个记录它的网站:
如何存储数据
数据的存储方式因浏览器而异.下面,我提供有关Mozilla Firefox如何存储Cookie和本地存储的信息.
注意:Mozilla支持部门于this article提供了有关如何查找Firefox配置文件的说明.
饼干
Firefox将您的cookie存储在名为cookies.sqlite的文件中.这是一个SQLite数据库.使用SQLiteStudio打开文件显示数据库包含一个表moz_cookies.
表结构
该表的结构如下:
表内容
以下是我的cookies.sqlite数据库的一部分内容:
localStorage的
Firefox将您的localStorage数据存储在名为webappsstore.sqlite的文件中的配置文件文件夹中.这是一个SQLite数据库.使用SQLiteStudio打开文件显示数据库包含一个表webappsstore2.
表结构
该表的结构如下:
列内容的结构:
>范围:
>:< the protocol>:
> KEY:
>存储值的名称.
>价值
>储值
>安全
>未使用此列.
>老板
>未使用此列.
表内容
以下是我的webappsstore.sqlite数据库的部分内容:
这与我在网页https://login.persona.org的控制台中键入localStorage时获得的数据相同.
结论
如您所见,浏览器以相同的方式存储来自cookie和本地存储的数据.如果您担心存储在用户计算机上的数据的安全性,localStorage不会提供超过cookie的安全优势.
事实上,它甚至可能是一个更大的风险,因为您可以设置cookie在一定时间后过期,而localStorage将不会过期.因此,保存在localStorage中的数据可能会保留在用户的计算机上的时间比使用cookie时的数据长.
(但是,如果您只需要在单个会话期间存储数据,则可以使用sessionStorage而不是localStorage.)