监听localstorage被修改事件,一旦修改,就将对应key的value置为oldValue。
window.addEventListener('storage', (e) => {
localStorage.setItem(e.key, e.oldValue);
});
加密
这里实际上有误,实际存储的是字符串,但是可以作为一种思路,即:将要存储的键值对包裹起来,加密处理,再存储,如果解密时发现异常,说明被修改过。)
将想要存储的键值对包裹为对象,比如原本想存的key为CityName,value为哈尔滨,现在改为key为AddrInfo, value为{CityName: "哈尔滨"}
将该对象加密
let AddrInfo = {"CityName":"海南"}
localStorage.setItem('AddrInfo', AddrInfo)
这种方法不仅有效防止篡改(仍然可以删除),更使得信息不会暴露出明文。