Что такое XSS? Как защитить свой веб-сайт от DOM-атак межсайтовых скриптов

Вопросы безопасности веб-сайта и уязвимости являются глобальной проблемой, поскольку уязвимости кибербезопасности растут. За последние несколько лет мы наблюдали значительный рост среднего количества таких случаев, и 2021 стал рекордным за все время.

Поэтому в этом учебнике мы поговорим о проблемах безопасности межсайтовых сценариев DOM XSS и о том, какое влияние они могут оказать на ваши данные. Обязательно прочтите до конца. Давайте начнем с ознакомления с некоторыми основами безопасности межсайтовых сценариев DOM XSS.

Что такое межсайтовый сценарий?

Межсайтовый сценарий, также называемый XSS, является проблемой безопасности веб-сайта, которая компрометирует информацию и пользовательские данные, когда эти люди используют уязвимую программу. Злоумышленник может использовать это, чтобы обойти политику происхождения, отделяющую два веб-сайта друг от друга.

Злоумышленники могут использовать XSS, чтобы выдавать себя за пользователя, выполнять действия, которые делал бы пользователь, и получить доступ к информации пользователя. Это также может позволить злоумышленникам получить полный доступ к информации пользователя, если у них есть разрешения и привилегии. Он также может взять на себя все действия и работу веб-сайта, если это будет продолжаться.

Чтобы помочь вам лучше понять эти типы атак, мы намерены обсудить некоторые основы того, как работает XSS и что он делает.

Как работает XSS?

Межсайтовый сценарий использует технологию для манипулирования уязвимым сайтом, чтобы он посылал опасный JavaScript пользователям. Это позволяет злоумышленнику получить полный доступ к сайту, когда скрипт получает доступ к пользовательской системе. Но для этого пользователю нужно сначала выполнить JavaScript.

Типы XSS атак

Отображен XSS:

Этот вредоносный сценарий поступает по запросу HTTP. Это самый простой тип XSS-атаки, когда приложение может получить вредоносные данные и немедленно отобразить их пользователю.

Полезная нагрузка злоумышленника должна быть частью запроса, отправленного на сервер, который затем отображается и выполняется в пользовательской программе.

Одним из примеров этого может быть злоумышленник, убеждающий кого-то нажать фишинговую ссылку до того, как она начнет действовать.

Сохраненный XSS:

Этот вредоносный скрипт происходит из базы данных веб-сайта. Злоумышленник вводит вредоносный запрос на сервер, где он может оставаться навсегда, если он не будет адресован вручную.

Например, злоумышленник мог бы ввести вредоносный сценарий в поле комментария, которое было бы видимо для всех, кто посещает страницу. Даже без непосредственного взаимодействия со сценарием посетители могут стать жертвами этой атаки.

XSS на основе DOM:

Эта более сложная уязвимость существует в коде клиента, а не в коде сервера. XSS на основе DOM не отображается и не хранится на сервере, но существует в объектной модели документа (DOM) страницы. Веб-приложение считывает вредоносный код и выполняет его в браузере как часть DOM, который сложнее обнаружить, поскольку он не поступает через сервер.

The уязвимости системы безопасности участвующие в атаках DOM XSS вызывают серьезную обеспокоенность для большинства веб-сайтов. Мы собираемся поговорить о некоторых из самых распространенных рисков, которые вы имеете на платформах веб-разработки с открытым кодом, таких как WordPress, по отношению к DOM — XSS хакам.

Это позволяет злоумышленнику выполнять вредоносный код JavaScript в браузере жертвы, потенциально позволяя злоумышленнику похитить конфиденциальную информацию или выполнить другие вредные действия от имени жертвы.

Вот пример XSS-атаки на основе DOM:

<script>
 // This function is intended to take a user supplied URL and display it on the page
 function displayURL(url) {
  // The URL is passed through innerHTML, which can execute JavaScript code
  document.getElementById("display").innerHTML = url;
 }
</script>

<!-- User supplied input is passed to the displayURL function -->
<p>Enter a URL to display: <input type="text" id="user-input" /></p>
<button onclick="displayURL(document.getElementById('user-input').value)">
 Display URL
</button>

<!-- The URL is displayed in this div -->
<div id="display"></div>

Помните, что учебник предназначен исключительно для образовательных целей, чтобы помочь вам распознать XSS и защититься от него. Вы не должны использовать эту информацию для осуществления каких-либо из этих типов атак.

DOM XSS – уязвимости WordPress

Основной целью атак DOM XSS на WordPress являются его пользователи. Пользователи вводят свои данные, аккаунты и учетные данные сайта, чтобы получить доступ к своим сайтам WordPress, и это то, что атаки DOM XSS направлены на компрометацию в Интернете. Злоумышленники могут использовать DOM XSS, чтобы получить доступ к информации и деталям пользователя одним щелчком мыши.

Это также включает ваши файлы cookie, информацию и прочее, что делает его одним из самых распространенных Уязвимость системы безопасности WordPress.

Ниже приведены некоторые из наиболее распространенных проблем с безопасностью веб-сайтов WordPress, о которых следует помнить, чтобы обеспечить лучшую безопасность межсайтовых сценариев.

Доступ к личной информации пользователя

Одна из самых распространенных уязвимостей безопасности WordPress Злоумышленники, связанные с атаками DOM XSS, могут получить полезную информацию и даже полностью завладеть пользовательским сайтом. Это часто может привести к быстрой эскалации и вызвать полный компромет данных.

Выдача себя за пользователя

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

Компрометация сайта

Другой частой проблемой безопасности веб-сайтов является то, что эти атаки могут скомпрометировать веб-сайт и забрать доступ у пользователя. Это включает отображение отклоненного содержимого на сайте (или содержимого, оригинально происходящего с сайта).

Другие случаи могут включать в себя изменение того, как WordPress выглядит в Интернете. Другие люди также могут использовать веб-сайт, устанавливая откровенное содержимое.

Социальная инженерия

В более серьезных случаях злоумышленники могут повлиять на сайт WordPress из-за попыток фишинга. Это всеобщее беспокойство относительно уязвимостей безопасности веб-конструктора, которые мы обсудим в скором времени.

Влияние проблем безопасности между скриптами XSS отличается для каждого веб-сайта. Однако сайты WordPress обычно подвергаются большему риску такого рода компрометации, поскольку пользователи сохраняют свою личную информацию на веб-сайте. Риск еще больше растет, если пользователь является администратором, поскольку злоумышленник может скомпрометировать весь сайт WordPress.

DOM XSS и платформы с закрытым кодом Web Builder

Конструкторы веб-сайтов, такие как Weebly, Squarespace, Webflow и Wix, в отличие от WordPress не являются платформами с открытым кодом. Они позволяют пользователям интуитивно понятно создавать веб-сайты для своего бизнеса с помощью функций перетаскивания DIY без опыта программирования или дизайна. Они также упорно трудятся над защитой безопасности своих пользователей.

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

Многие разработчики веб-сайтов пытаются оградить сайты своих пользователей от угроз хакеров. Но из всех доступных конструкторов веб-сайтов я считаю, что Wix лучше всего придерживается стандартов NIST по кибербезопасности и внес большой вклад в усовершенствование этой отрасли.

Wix защищает пользователей своих сайтов от уязвимости к таким атакам онлайн с помощью таких инструментов, как:

  • Обновление сторонних разработчиков, проектирующих против атак DOM XSS
  • Защищенный уровень розеток, защищающий от нежелательного доступа пользователей на сайте
  • Круглосуточный защищенный веб-хостинг, защищающий пользователей от любых нежелательных входов или попыток фишинга.
  • Предоставление своим пользователям прав администратора, ограничивающих доступ к сайту и контроль только начальному владельцу
  • Выделение слабых паролей и предложение паролей, которые более сложно расшифровать.

Способы защиты от атак XSS

Защита вашей системы и пользователей XSS-атак часто требует многогранного подхода, чтобы обеспечить защиту ваших серверов и программ от различных типов атак.

Лучший способ защиты от XSS-атак — правильно очистить введенные пользователем данные. Это означает убедиться, что любой введенный пользователем код правильно закодирован, чтобы браузер не мог интерпретировать его как код.

Кроме того, можно использовать брандмауэр веб-приложений (WAF), чтобы помочь идентифицировать и блокировать атаки XSS. Также целесообразно постоянно обновлять программное обеспечение и веб-приложения, поскольку многие уязвимости XSS можно смягчить, просто применив последние исправления безопасности.

Проверка введенных данных

Данная техника программирования гарантирует, что только правильно отформатированные данные могут вводиться в программную систему. Веб-сайты могут разрешать или блокировать определенные значения, чтобы гарантировать, что XSS не сможет проникнуть на их серверы.

Экранирование или кодирование введенных пользователем данных

Кодирование и экранирование изменяют введенные пользователем данные, чтобы сделать их более безопасными для системы. Кодирование заменяет специальные символы более безвредными эквивалентами (например, перевод < на <), тогда как экранирование добавляет специальные символы для защиты от инъекционных атак.

Внедрение политики безопасности содержимого (CSP)

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

Нижняя линия

Безопасность межсайтовых сценариев DOM XSS проблемы вызывают серьезную обеспокоенность у пользователей веб-сайтов. Но платформы создания веб-сайтов с закрытым кодом предоставляют такие функции, как права администратора, лучшие методы использования паролей и т.д.rd обновление вечеринок и многое другое. Эти функции делают их более безопасным вариантом создания веб-сайтов, чем многие платформы с открытым кодом.

Вы также можете предотвратить атаки XSS, отфильтровав входящие данные после их поступления. Вы можете сделать это, убедившись, что принимается только действительный вход.

При кодировании данных на выходе процесс следует выполнять в ответах HTTP, чтобы они не читались как активное содержимое. Может потребоваться более сложное кодирование, например применение комбинаций кодирования URL, JavaScript, CSS и HTML в зависимости от контекста вывода.

Следите за заголовками ответов, чтобы браузеры правильно интерпретировали содержимое.

Наконец, используйте политику безопасности содержимого (CSP), чтобы минимизировать серьезность атак XSS.

<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline';">

Этот CSP позволит вашему сайту загружать сценарии и стили из того же источника (т.е. вашего собственного веб-сайта), но он будет блокировать сценарии и стили из внешних источников. Это также позволит использовать встроенные сценарии и стили, но блокировать операторы eval(), которые можно использовать для выполнения произвольного кода.

Конечно, это простой пример, и вы можете настроить свой CSP в соответствии с вашими конкретными потребностями. Для получения дополнительных сведений о том, как использовать CSP для защиты от атак XSS, можно обратиться к спецификации Content Security Policy Level 2.

Основное изображение через Unsplash (Флориан Олив).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *