Я прочитал комментарий об использовании неверных тегов для XSS-атак. Как я должен дезинфицировать против них. Если я использую такую библиотеку, как HTMLPurifier, воспринимает ли она это как часть своей работы? или это самостоятельная вещь? Я не слышу, чтобы люди много говорили об этом.
Как предотвратить использование неверных тегов для XSS
Ответы (4)
Частью философии дизайна HTML Purifier является вывод только HTML, совместимого со стандартами, чтобы свести к минимуму различия в интерпретации браузера. Таким образом, HTML Purifier никогда не будет выводить некорректные теги.
HTMLPurifier на самом деле очищает от XSS.
В наше время, чтобы полностью и полностью защитить себя от XSS, вам потребуется белый, а не черный список, который предоставляет HTML Purifier. Мало того, что в неправильном контексте даже htmlspecialchars($var,ENT_QUOTES);
вам не поможет, так как есть много способов избежать использования как html-тегов, так и кавычек (stringFromChar, с использованием обратной косой черты), вы также должны учитывать другую кодировку браузера, которая может позволить, например. эта атака в UTF-7 \\\+ADw-script+AD4-alert(/xss/)+ADw-/script+AD4---//--
должна быть выполнена. Хотя HTMLPurifier имеет большие накладные расходы, это простой нетехнический способ предотвращения XSS-атак (хотя в их фильтрах были и, я думаю, будут дыры).
В этом случае HTMLPurifer является излишним. Если XSS находится внутри тега, вы можете внедрить событие javascript без необходимости использования <>
. Недавно это случилось с твиттером. Ответ заключается в использовании htmlspecialchars($var,ENT_QUOTES);
.