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