Что такое межсайтовый скриптинг (XSS) и почему это угроза безопасности

  • Gabriel Brooks
  • 0
  • 4574
  • 867
Реклама

Уязвимости межсайтового скриптинга являются сегодня самой большой проблемой безопасности сайта. Исследования показали, что они шокирующе распространены - 55% веб-сайтов содержали уязвимости XSS в 2011 году, согласно последнему отчету White Hat Security, выпущенному в июне 2012 года. Хотя большинство людей слышали о компьютерных вирусах, краткая история 5 самых ужасных компьютерных вирусов За все время Краткая история 5 самых ужасных компьютерных вирусов всех времен Слово «вирус» и его связь с компьютерами было прикреплено американским ученым-компьютерщиком Фредериком Коэном, который использовал его для описания «программы, которая может« заразить »другие программы, модифицируя их. Чтобы включить, возможно ... и другие подобные проблемы, уязвимости XSS остаются неизвестными для среднего человека.

Уязвимость межсайтового скриптинга позволяет злоумышленнику выполнять произвольный код JavaScript (с другого сайта) на веб-странице. Код выполняется на веб-странице в браузере пользователя..

Пример - червь Twitter StalkDaily

Давайте посмотрим на XSS-атаку, которая произошла в прошлом с Twitter. В 2009 году червь StalkDaily В чем разница между червем, трояном и вирусом? [MakeUseOf Объясняет] В чем разница между червем, трояном и вирусом? [MakeUseOf Объясняет] Некоторые люди называют вредоносные программы любого типа «компьютерным вирусом», но это не совсем так. Вирусы, черви и трояны - это различные типы вредоносных программ с различным поведением. В частности, они распространяются в очень… широко распространенном по всему Твиттеру. Когда пользователь Twitter заходил на страницу профиля зараженного пользователя, его страница профиля также заражалась, распространяя червя. Червь также рассылал твиты с каждого зараженного аккаунта..

Итак, как именно работал червь StalkDaily? Кто-то взломал веб-серверы Twitter? Не совсем - хотя это был своего рода взлом.

Каждый пользователь Twitter может установить небольшую биографию на странице своего профиля. Пользователи вводят текст в поле профиля, и после сохранения профиля текст появляется на странице его профиля. Кто-то понял, что Твиттер неправильно очищает ввод текста из биобокса (мы вернемся к этому позже) - он просто поместил текстовые пользователи, введенные непосредственно в исходный код веб-страницы. Это позволило пользователю ввести тег HTML, который загружает файл JavaScript со стороннего веб-сервера.

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

Как разработчики могут предотвратить атаки XSS

Одно простое правило позволяет веб-разработчикам узнать, является ли кто-то хорошим веб-разработчиком для вашего проекта. Как определить, является ли кто-то хорошим веб-разработчиком для вашего проекта. Даже если вы не создаете следующий Gmail, вы должны делать все правильно с первого раза. Но выбирайте хороший… для предотвращения межсайтовых скриптовых атак: не доверяйте никаким данным, поступающим от пользователей. Например, в случае с Twitter им не следовало доверять текстовым пользователям, введенным в их биобоксы. Twitter должен был взять текст и “дезинфицировать” или же “спасся” это - например, должен быть изменен наo