Какие настройки HTMLPurifier вы используете для очистки CSS? - PullRequest
1 голос
/ 02 июня 2011

Я создаю приложение, которое позволяет пользователям вводить пользовательский CSS для своих профилей (вроде MySpace, Friendster или Blogger).

Проблема в том, что мне трудно найти способ очистить XSS-атаки с помощью CSS. Я пытался использовать HTMLPurifier, но он не работает. Один пример:

html {
    expression: alert('xss');
}

body {
    background-color: #FFF;
}

Это будет разрешено HTMLPurifier.

Есть ли какие-либо настройки, которые мне нужно использовать для HTMLPurifier, чтобы сделать его недействительным?

Спасибо!

Обновление
Является ли выражение : единственным способом использования эксплойта через CSS? Если это так, будет ли регулярное выражение более эффективным, чем использование HTMLPurifier?

Ответы [ 2 ]

2 голосов
/ 02 июня 2011

HTML Purifier работает с вводом HTML, а не с CSS.При этом, вероятно, вы можете обмануть его для работы с таблицами стилей CSS, обернув таблицу стилей в теги стилей и включив% Filter.ExtractStyleBlocks.Вам понадобится CSS Tidy.

Обновление. Нет. Существует много способов доставки полезных нагрузок CSS, и поиска выражения недостаточно.

0 голосов
/ 08 июня 2011

$str = preg_replace("/expression[\s:\]+/", '', $str) удалит строку выражения.

По моему мнению, может быть лучше просто "забанить" или иным образом пометить пользователя, который пытается ввести этот материал на ваш сайт. Не знаю о других способах сломать браузер с помощью CSS, может быть, @Edward может помочь здесь:)

...