Безопасность веб-приложений является ключевым компонентом любого веб-приложения.
Из-за недостатков безопасности в веб-браузерах XSS сначала был известен как межсайтовый. Если в вашем браузере были активны окна для обоих сайтов, вы могли использовать XSS для перемещения информации/данных с одного сайта на другой.
В этой статье я подробно расскажу вам о XSS и о том, как вы можете предотвратить XSS-атаки на ваше PHP веб-приложение.
Межсайтовый скриптинг (XSS)
Что такое XSS?
Это непреднамеренное выполнение удаленного кода веб-клиентом. Злоумышленник может использовать XSS для отправки вредоносного скрипта ничего не подозревающему пользователю.
Любое веб-приложение может быть подвержено XSS, если оно принимает ввод от пользователя и выводит его непосредственно на веб-страницу.
Как возникают XSS
XSS обычно добавляется с помощью веб-формы или гиперссылки на веб-странице. Любой язык на стороне клиента, включая JavaScript, PHP, HTML и VBScript, может использовать этот код.
Ввод данных, поступающих от клиента, никогда не должен вызывать доверия. Значения GET, POST и COOKIE могут быть абсолютно любыми, поэтому их следует проверять перед выводом.
PHP предоставляет несколько способов сделать это.
1️⃣HTML-кодирование:
Функция PHP htmlspecialchars преобразует любые специальные символы HTML в их кодировку HTML, что означает, что они не будут обрабатываться как стандартный HTML.
SYNTHAX
<?php
// GET
$input = htmlspecialchars($_GET['input']);
// POST
$input = htmlspecialchars($_POST['input'])
?>
2️⃣URL Кодировка:
При выводе динамически сгенерированного URL, PHP предоставляет функцию urlencode для безопасного вывода проверенных или обработанных URL.
SYNTHAX
<?php
$input = urlencode($_GET['input']);
?>
Любой вредоносный ввод будет преобразован в закодированный параметр URL.
3️⃣ СТОРОННИЕ БИБЛИОТЕКИ PHP:
Существует несколько сторонних PHP библиотек, которые обычно используются для предотвращения XSS.
Примеры👇
HTML Purifier — здесь
PHP Anti-XSS — здесь
htmLawed — здесь
🗝Использование функций фильтрации PHP.
Эта функция дезинфицирует или проверяет данные, отправленные PHP-скрипту, различными способами.
Примечание✍
PHP STRIP_TAGS() НЕ должна использоваться исключительно для санации данных. strip_tags() удаляет содержимое между HTML-тегами и не может предотвратить XSS-инциденты, существующие внутри атрибутов HTML-сущностей. strip_tags() также не фильтрует и не кодирует непарные закрывающие угловые скобки.
Заключение
Межсайтовый скриптинг — это универсальная атака. Она может быть использована для кражи особо важных данных, включая учетные данные пользователя, файлы cookie и данные, имеющие экономическую ценность.
Какими еще способами мы можем предотвратить XSS. Поделитесь своими идеями в комментариях ниже👇.
Вы можете поддержать меня, чтобы я продолжал писать больше для вас🚀❤