2017-02-09 16 views
0

Когда я встроил 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

+0

Да, любой JS, загруженный на страницу, может получить доступ к файлам cookie и localStorage из домена страницы. Это одна из причин, по которой вам не следует хранить конфиденциальные данные в браузере (если нужно, зашифруйте его на сервере и расшифруйте его на сервере). Во Франции у нас есть законы, которые запрещают хранить данные локально без согласия пользователя и хранить незашифрованные конфиденциальные данные, такие как электронные письма пользователей, пароль и т. Д. – blex

+0

Интересно. Я озадачен тем, почему браузеры допускают эту дыру в безопасности, в то время как файлы cookie не страдают от этого же недостатка дизайна. –

+0

_ «Cookies не страдают от этого же дефекта дизайна» _? https://jsfiddle.net/scwo1ba9/ – blex

ответ

2

сайты советуют не хранить любой пользователь конфиденциальную информацию

Ад нет, с вашим без использования любой сторонний JS

Все, что находится в js или html, может быть прочитано всеми посетителями вашего сайта, независимо от того, находится ли оно в localstorage или в другом месте в интерфейсе.

Просто нажмите F12 и посмотрите на весь исходный код исходного кода stackoverflow.

+0

Да, я понимаю эту часть. Я не имел в виду точно имя пользователя/пароля, но даже общие данные, связанные с приложением, похоже, что эти данные могут быть подделаны сторонними js, не зная об этом. Это не относится к файлам cookie. Я предполагаю, что это просто озадачило все это отверстие в петле –

+0

Файл cookie также можно прочитать. @KuldeepKapade. Просто нажмите blex 'скрипка ниже вашего вопроса. – baao

+0

В этом примере cookie устанавливается в том же домене. cookie, установленный в abc.com, не может быть прочитан xyz.com –