当我嵌入一个托管在JS上的JS可以说,xyz.com在一个托管在abc.com上的网页上时,似乎xyz.com/test.js可以读取和写入abc.com上设置的所有键值。这不是被认为是巨大的安全漏洞吗?当您计划使用Google Analytics等第三方JS时,建议网站不要在本地存储中存储任何用户敏感信息?第三方JS访问第一方localstorage可以吗?
下面是一个例子 - https://jsfiddle.net/kuldeepk/eqawezd6/1/
localStorage.setItem('first-party', 'first-party');
window.Test.setKeyValue('third-party', 'third-party')
console.log(window.Test.getKey('first-party'))
console.log(localStorage.getItem('third-party'));
window.Test在第三方JS
是的,任何加载在页面上的JS都可以从页面的域中访问cookie和localStorage。这是您不应该在浏览器中存储敏感数据的原因之一(如果您必须,请将其加密并将其解密到服务器端)。在法国,我们有法律禁止在未经用户同意的情况下在本地存储数据,并存储非加密的敏感数据,如用户电子邮件,密码等。 – blex
有趣。我很困惑为什么浏览器允许这个安全漏洞,而cookie不会遭受同样的设计缺陷。 –
_“饼干不会遭受同样的设计缺陷”_? https://jsfiddle.net/scwo1ba9/ – blex