LocalStorage通常被应用程序使用,那么如何避免意外删除值?

时间:2016-11-28 04:11:18

标签: javascript local-storage sessionstorage

LocalStorage通常由应用程序使用。这是否意味着您的值可能被其他应用程序操纵或删除?或者是否正在使用某种命名空间,以便根据每个域存储值,而不存在被插入的风险?提示将不胜感激。

1 个答案:

答案 0 :(得分:3)

localStorage对于每个来源都是唯一的,因此 安全,并且不能被其他网站或应用程序干扰。

spec明确指出

  

localStorage对象为原点提供Storage个对象   用户代理必须具有一组本地存储区域,每个区域一个   的来源

     

用户代理应仅为本地存储区域的数据过期   安全原因或用户要求时这样做   用户代理   应始终避免在可以访问的脚本时删除数据   数据正在运行。

     

访问localStorage属性时,必须运行用户代理   以下步骤,称为存储对象   初始化步骤:

     
      
  1. 用户代理可能抛出“SecurityError”DOMException并中止   这些步骤而不是在请求时返回Storage对象   违反策略决策(例如,如果用户代理配置为   不允许页面保留数据)

  2.   
  3. 如果文档的原点是不透明的原点,那么抛出一个   “SecurityError”DOMException并中止这些步骤。

  4.   
  5. 检查用户代理是否已为其分配了本地存储区域   属性所在的Window对象的Document的来源   被访问。
      如果没有,请为其创建一个新的存储区域   原点。

  6.   
  7. 返回与该来源的本地存储关联的存储对象   区域。
      每个Document对象必须有一个单独的对象   Window的localStorage属性。

  8.   

请注意,"an origin"是相当具体定义的,但对于本地存储,它意味着协议,域和端口必须匹配两个端点才能被视为具有相同的来源