Я нашел "базу данных" множества XSS-атак, и хотя этот список предоставляет довольно большой список атак, есть ли другие атаки, которые не попали в XML, на что следует обратить внимание и что наиболее неожиданно?
Предотвращение XSS-атак
Ответы (3)
Раньше я использовал HTML Purifier, чтобы позволить пользователям вводить в текстовые поля комментариев только определенный безопасный HTML-код. Он делает очень хорошую работу и имеет очень хорошую документацию.
Для всего остального, например, простого текстового поля или поля выбора, при записи значения на страницу я всегда запускаю его через htmlentities()
:
htmlentities ($_POST['email'], ENT_QUOTES);
Пока все данные, отправленные пользователем, всегда записываются на страницу с использованием htmlentities()
, у вас никогда не должно возникнуть проблемы с XSS.
Не уверен, что именно вы ищете, но если вы хотите предотвратить XSS-атаки на свой сайт, я бы посоветовал вообще не разрешать HTML. Если вы хотите разрешить HTML, посмотрите, как это делает StackOverflow.
Вы можете найти несколько вещей, которые другой сайт пропустил здесь.
Это очень обширная тема, требующая подробного и актуального знания методов, используемых хакерами для выполнения XSS. Но для начала не стоит доверять ничему вводимому пользователем. Воспринимайте это как потенциальную попытку взломать ваш сайт или повредить вашу базу данных.
Вы можете использовать множество доступных инструментов очистки для удаления потенциальных вредоносных данных, таких как:
для библиотеки asp.net Microsoft Anti-XSS, HTML Agility Pack от codeplex.
для PHP вы, безусловно, можете использовать HTMLPurifier. Это очень хороший и способный инструмент.