Вопрос по sanitize, ruby-on-rails-3, html-safe, ruby-on-rails – sanitize, кажется, фильтрует эти примеры

5

ользую текстовый редактор (CKEditor), и у меня есть возможность позволить пользователям создавать профили, которые отображаются для других пользователей.

Многие атрибуты, которыми может управлять CKEditor, теряются, когда я отображаю их как:

<%= sanitize(profile.body) %>

Мой вопрос: безопасно ли разрешать анализ атрибута 'style'? Это позволит отображать такие вещи, как цвет текста, размер, цвет фона, центрирование, отступ и т. Д. Я просто хочу быть уверен, что это не позволит хакеру получить доступ к тому, о чем я не знаю!

Ваш Ответ

1   ответ
15

Нет.

background-image: url(javascript:[code]);
width: expression([code]);                  /* ie */
behavior: url([link to code]);              /* ie */
-moz-binding: url([link to code]);          /* ff */

Не говоря уже о подделке UI-атак, таких как размещение ложной формы входа поверх реальной или чего-то еще.

Это еще раз показывает, что вы не можете быть в безопасности с черным списком. Если бы вы не думали о черных списках правил URL в CSS, у вас возникла бы проблема. Вы даже не можете вывести строку CSS, вам действительно нужно полностью проанализировать ее и вывести только проанализированный DOM. usr
Смотрите такжеCSS Injection Zabba
но sanitize () не использует белый список? Nick Ginanto
sanitize, кажется, фильтрует эти примеры:attributes => %w( style ) Nick Ginanto
ха! Большое спасибо, у меня было чувство :) sscirrus

Похожие вопросы