Comments 15
Мне кажется, примеры нужны. Для визуализации, ага. :)
Последнюю ссылку посмотрите, чем не пример.
Имел в виду пример кода.
Ну так в исходниках есть пример кода, как использовать:
include('markhtml.php');
echo markhtml($text);
фильтровать запрещенное как-то некошерно.
вспомнить хотя бы знаменитый j a v a s c r i p t и аналоги.
плюс введут завтра какой-нибудь новый небезопасный тэг и что?
вспомнить хотя бы знаменитый j a v a s c r i p t и аналоги.
плюс введут завтра какой-нибудь новый небезопасный тэг и что?
HTMLPurifier хоть и очень громоздкая библиотека, но мне кажется, что для чистки кода лучше ее использовать.
Никому не советую использовать данную библиотеку, так как чистить по черному списку небезопасно. Также, автор не написал, сколько их XSS отсюда ha.ckers.org/xss.html отфильтровывает его библиотека.
Единственный надежный способ — разбивать текст на теги, теги на аттрибуты (если требуетс яих тоже фильтровать), отдельно разбивать аттрибут style и прогонять все по белому списку, а затем пересобирать HTML заново. Или загрузить HTML в DOm/XML дерево, и опять-так пройтись по нему белым списком и собрать назад.
А кто не хочет так делать, так и будет ловить XSS'ы и трусливо заменять буквы в слове javasript, ломая ссылки и код программ.
Единственный надежный способ — разбивать текст на теги, теги на аттрибуты (если требуетс яих тоже фильтровать), отдельно разбивать аттрибут style и прогонять все по белому списку, а затем пересобирать HTML заново. Или загрузить HTML в DOm/XML дерево, и опять-так пройтись по нему белым списком и собрать назад.
А кто не хочет так делать, так и будет ловить XSS'ы и трусливо заменять буквы в слове javasript, ломая ссылки и код программ.
В принципе так и происходит, разбивается на теги и атрибуты, и потом собирается заново. Разве что стили убираются только по простому правилу — наличие открывающей скобки. В итоге хитрые методики внедрения плохого атрибута или тега не срабатывают. Остается проблема с содержимым атрибутов, обнаружил что мой фильтр пропускает такое:
Спасибо за ссылку на этот сайт, хороший подбор материала.
Все указанные атаки вполне пройдут «белые» списки, чаще всего проблемы с содержимым атрибутов, или использованием некоторых не безопасных тегов, таких как <script> <style>, которые удаляются и через белый список, и через черный.
<IMG SRC="jav ascript:alert('XSS');">
(вставлена табуляция внутрь слова javascript:), нужно будет протестировать такую конструкцию на различных браузерах, скорее всего это проблема совсем уж старого браузера, но фильтр подправлю, чтобы искал и лишние символы в слове javascript.Спасибо за ссылку на этот сайт, хороший подбор материала.
Все указанные атаки вполне пройдут «белые» списки, чаще всего проблемы с содержимым атрибутов, или использованием некоторых не безопасных тегов, таких как <script> <style>, которые удаляются и через белый список, и через черный.
оригинальный текст «сообщите мне о ней на»
полученый текст «сообщите мне о ней на »
вопрос, почему после «о» и «на», скрипт ставит ?
полученый текст «сообщите мне о ней на »
вопрос, почему после «о» и «на», скрипт ставит ?
Это типограф так делает, ставит неразрывный пробел:
— перед последним словом;
— после коротких слов;
— перед частицами: ли, ль, же, ж, бы, б;
— после знака № и §.
webfilin.ru/instruments/typograf/
— перед последним словом;
— после коротких слов;
— перед частицами: ли, ль, же, ж, бы, б;
— после знака № и §.
webfilin.ru/instruments/typograf/
Хм. На всякий случай, ссылка на Типограф в статье, мягко говоря, ведет не на типограф ;)
Когда-то он там был: https://web.archive.org/web/20110417113308/http://webfilin.ru/instruments/typograf/
Спасибо, поправил ссылку, чтобы не вела на это безобразие.
Спасибо, поправил ссылку, чтобы не вела на это безобразие.
Sign up to leave a comment.
MarkHtml