Избегать только определенных тегов в Grails - PullRequest
0 голосов
/ 10 мая 2011

В моём приложении пользователи смогут размещать собственный контент. Конечно, я хочу защитить свое приложение от атак XSS. Но использование .encodeAsHTML() ускользает от всего. Я хотел бы позволить пользователям стилизовать их текст, поэтому я бы хотел, чтобы некоторые теги были неэкранированы, например <b>, <i>, <u>. Есть идеи, как я могу это сделать? Или может кто-то уже делал что-то подобное? Я думал также о форматировании в стиле BBCode - кто-нибудь делал это на Grails?

Ответы [ 2 ]

1 голос
/ 10 мая 2011

Посмотрите на jsoup , который позволяет вам добавлять теги и атрибуты в белый список, но в противном случае вычистить ваш HTML.

Вот пример:

String escapeNonFormattingHTML(String unescaped) {
    def whitelist = Whitelist().simpleText() //allows b, i, u, em, strong
    return new Jsoup().clean(unescaped, whitelist)
} 
0 голосов
/ 03 апреля 2012

Html cleaner Плагин может помочь вам очистить HTML на основе белых списков. Но другие теги не будут экранированы, но удалены полностью. Он основан на jsoup.

...