Санитарная обработка CSS в Rails - PullRequest
13 голосов
/ 16 июня 2010

Я хочу, чтобы пользователи веб-приложения, которое я создаю, писали свои собственные CSS для настройки страницы своего профиля.

Однако я знаю об этом открытии для многих угроз безопасности, например: url ('javascript: alert ("Got your cookies!" + Document.cookies').

Следовательно, я ищу решение для дезинфекции CSS, в то же время предоставляя максимально возможную функциональность CSS для моих пользователей.

Итак, мои вопросы, если кто-нибудь знает о драгоценном камне или плагине, чтобы справиться с этим? Я уже погуглил свои мозги, так что любые советы будут очень полезны!

Ответы [ 2 ]

7 голосов
/ 16 июня 2010

Rails имеет встроенное дезинфицирующее средство css

См. http://apidock.com/rails/ActionView/Helpers/SanitizeHelper/sanitize_css и его родительский элемент http://apidock.com/rails/ActionView/Helpers/SanitizeHelper/sanitize

> ActionController::Base.helpers.sanitize_css('background:#fff')
=> "background: #fff;" 
> ActionController::Base.helpers.sanitize_css('javascript:alert("garr");')
=> "" 
1 голос
/ 09 сентября 2011

Также есть код css_file_sanitize: https://github.com/courtenay/css_file_sanitize

Сравнивая его с командой Rails sanitize, я обнаружил, что оба используют регулярные выражения для удаления нежелательных частей CSS.

Вот источник для css_file_sanitize: https://github.com/courtenay/css_file_sanitize/blob/master/lib/css_sanitize.rb

Вот источник для Rails sanitize: https://github.com/rails/rails/blob/master/actionpack/lib/action_controller/vendor/html-scanner/html/sanitizer.rb

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...