Я хочу позволить пользователям использовать свои собственные таблицы стилей для профилей thei на моем форуме, но я боюсь возможных уязвимостей системы обеспечения безопасности. У кого-либо есть какие-либо подсказки для очистки CSS?
Базовый процесс: Пользователь входит, CSS в форму-> Сохраняют к DB-> Вывод как встроенный CSS
Я не понимаю, как это может создать уязвимости безопасности, если профили не используются совместно с другими пользователями.
При совместном использовании могут возникнуть уязвимости CSRF (поскольку CSS может генерировать запросы GET для включения изображений, шрифтов, других таблиц стилей и т. Д.). Они также могут использовать контент
, чтобы обманом заставить пользователей щелкать мышью в некоторых местах, скрывать важные функции и т. Д. И, конечно же, вам придется выйти из <
, >
и, возможно, и
для предотвращения XSS (если CSS встроен в HTML).
Что касается библиотек для санации, я не знаю ни одной (возможно, аккуратной).
Определите классы самостоятельно и создайте графический интерфейс для применения цвета и других свойств к каждому классу, используйте тот же подход, что и Twitter.
альтернативный текст http://grab.by/grabs/3217158e9c48538eb127fb1678dab6ae.png
Конечно, это будет работать, только если ваш макет зафиксирован и определен администратором, а не пользователем.