Возможно ли автоматическое экранирование HTML с помощью Hiccup?

Я только что попробовал это с Иккингом:

(hiccup.core/html [:h1 "<script>alert('xss');</script>"])

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

Есть ли в Hiccup способ экранировать строки по умолчанию?


person pupeno    schedule 11.07.2015    source источник
comment
HTH: github.com/weavejester/hiccup/issues/5   -  person ClojureMostly    schedule 12.07.2015


Ответы (2)


икота 2.0.0-alpha1 имеет экранирование по умолчанию. Вам просто нужно изменить вызов hiccup.core/html на hiccup2.core/html, и он должен работать без каких-либо изменений.

(str (hiccup2.core/html [:h1 "<script>alert('xss');</script>"]))

Я обновил свой проект с 1.0.5, и он работает без каких-либо регрессий.

person Thiago Lewin    schedule 02.09.2018

Нет, но core/h — это псевдоним для escape-html это делает его немного более удобным:

(hiccup.core/html [:h1 (hiccup.core/h "<script>alert('xss');</script>")])
person John Wiseman    schedule 11.07.2015