дезинфицировать и пространство имен - PullRequest
0 голосов
/ 24 января 2011

У меня есть несколько пользовательских тегов «namespaced» (разработанных с радиусом gem), которые я хотел бы использовать в своем приложении rails. Я хотел бы использовать geit sanitize для предотвращения xss-атак, но нет описания, как настроить пространство имен в sanitize. Есть ли возможный способ?

Ответы [ 2 ]

1 голос
/ 20 апреля 2011

Камень sanitize не поддерживает пространства имен. Кратко рассмотрев код для sanitize, ни класс преобразования, который очищает элементы, ни то, как он фактически анализирует html, не предоставляет Nokogiri (xml-анализатору, лежащему в основе sanitize) информацию, необходимую для распознавания и обработки пространств имен), поэтому без изменения sanitize для поддержать это, это не будет возможно.

Вы сможете увидеть теги без пространств префиксных имен в sanitize, поэтому, если у них всех есть собственные имена, которые не конфликтуют с любыми другими тегами, вы можете указать их, но с помощью sanitize, как написано в данный момент. , вы не можете фильтровать специфичные для пространства имен теги.

0 голосов
/ 24 января 2011

Насколько я знаю, sanitize gem просто фильтрует javascript и HTML из параметров в контроллере.Возможно, он был расширен с тех пор, как я в последний раз выглядел.

Нет, большинство драгоценных камней нельзя назвать пространством имен.Есть несколько хаков, чтобы положить обертки вокруг них с исправлениями обезьяны.При необходимости я бы назвал Google "столкновение пространства имен ruby", и вы получите что-то подобное

...