Проблема безопасности с динамическими тегами script

Единственный способ, которым я знаю, сделать это в javascript, это использовать всплывающее окно подтверждения. Он имеет общие кнопки «ОК» и «Отмена», которые, я не думаю, можно редактировать, и отформатирован в соответствии с веб-браузером пользователя. Чтобы использовать метод подтверждения, вы пишете:

if (confirm("Do you really want to leave here?"){
   //do whatever
}
9
задан Tom Lehman 27 March 2009 в 19:57
поделиться

2 ответа

Это - хороший вопрос, и этот точный вид использования когда-то использовался для кражи списков контактов из Gmail.

Каждый раз, когда браузер выбирает данные из домена, это отправляет через любые cookie-данные, которые установил сайт. Это cookie-данные может затем используемый, чтобы аутентифицировать пользователя и выбрать любые определенные пользовательские данные.

Например, при загрузке новой страницы stackoverflow.com браузер отправляет cookie-данные в stackoverflow.com. Stackoverflow использует те данные для определения, кто Вы, и показывает соответствующие данные для Вас.

То же верно для чего-либо еще, что Вы загружаетесь от домена, включая файлы CSS и JavaScript.

Уязвимость системы обеспечения безопасности, которой Flickr, с которой стоят, была то, что любой веб-сайт мог встроить этот файл JavaScript, размещенный в серверы Flickr. Ваши cookie-данные Flickr были бы затем отправлены по как часть запроса (так как JavaScript был размещен на flickr.com), и Flickr генерирует документ JavaScript, содержащий уязвимые данные. Злонамеренный сайт затем смог бы получить доступ к данным, которые были загружены.

Вот использование, которое использовалось для кражи контактов Google, которые могут сделать его более ясным, чем мое объяснение выше: http://blogs.zdnet.com/Google/?p=434

8
ответ дан 4 December 2019 в 15:26
поделиться

Если я должен был поместить страницу HTML на свой веб-сайт как это:

<script src="http://www.flickr.com/contacts.js"></script>
<script> // send the contact data to my server with AJAX </script>

Принятие contacts.js использует сессию для знания, какие контакты отправить, у меня теперь была бы копия контактов.

Однако, если бы контакты отправляются через JSON, я не могу запросить их от своей страницы HTML, потому что это был бы междоменный запрос Ajax, который не позволяется. Я не могу запросить страницу со своего сервера также, потому что у меня не было бы Вашего идентификатора сессии.

5
ответ дан 4 December 2019 в 15:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: