Когда я встроил JS, размещенный на сайте let, скажем, xyz.com на веб-странице, размещенной на abc.com, казалось, что xyz.com/test.js может читать и записывать все значения ключа, установленные на и abc.com. Разве это не считается огромной дырой в безопасности? Рекомендуются ли сайтам не хранить какую-либо конфиденциальную информацию в локальном хранилище, если вы планируете использовать сторонние JS, например, из Google Analytics?Может ли сторонний JS получить доступ к локальному локальному сайту?
Вот пример - 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 не страдают от этого же недостатка дизайна. –
_ «Cookies не страдают от этого же дефекта дизайна» _? https://jsfiddle.net/scwo1ba9/ – blex