Как предотвратить неправильные теги для XSS - PullRequest
4 голосов
/ 19 ноября 2010

Я прочитал комментарий о неправильно сформированных тегах, используемых для атак XSS.Как я должен санировать против них.Если я использую библиотеку, такую ​​как HTMLPurifier, будет ли это частью ее работы?или это самостоятельная вещь?Я не слышу, чтобы люди много говорили об этом.

Ответы [ 4 ]

2 голосов
/ 20 ноября 2010

Часть философии дизайна HTML Purifier заключается в том, чтобы выводить только совместимый со стандартами HTML, чтобы минимизировать различия в интерпретации браузера. Таким образом, HTML Purifier никогда не будет выводить искаженные теги.

0 голосов
/ 20 ноября 2010

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

0 голосов
/ 20 ноября 2010

В этом случае HTMLPurifer является излишним.Если XSS находится внутри тега, вы можете добавить событие javascript без необходимости <>Недавно это случилось с твиттером .Ответ должен использовать htmlspecialchars($var,ENT_QUOTES);.

0 голосов
/ 19 ноября 2010

HTMLPurifier фактически очищает для XSS.

...