Haml поддерживает защиту от XSS в Rails, которая была введена в Rails версии 2.3.5 и активирована по умолчанию с версии 3.0.0. Если защита активирована, то метод
:escape_html
у Haml имеет значение true
по умолчанию, и, как и у ERB, все строки указанные в шаблоне Haml будут экранированы. Так же, как и в ERB, строки помеченные как HTML не будут экранированы. Помимо этого Haml имеет
собственный синтаксис для указания безопасных строк.
Если метод :escape_html
отключен, а защита от XSS включена, то Haml не будет экранировать строки Ruby кода по умолчанию. Тем не менее, если строка помечена как безопасный HTML через
синтаксис экранирования Haml,
то данная строка не будет экранирована.
И, наконец, все хелперы Haml возвращают строки, помеченные как безопасные, в том виде как они указаны. В дополнение к вышенаписанному, строки, содержащие в себе экранированный контент, не являются безопасными.