Escape HTML в уценке в HAML - PullRequest
       33

Escape HTML в уценке в HAML

2 голосов
/ 24 сентября 2011

Возможно ли в Rails 3.1 экранировать HTML в уценке в HAML, чтобы избежать XSS?Я имею в виду, когда вы делаете что-то вроде:

:markdown
  Hello #{@user.name}

Спасибо.

1 Ответ

0 голосов
/ 25 сентября 2011

Пока я создал это:

module Haml::Filters::SafeMarkdown
  include Haml::Filters::Base
  lazy_require "rdiscount", "peg_markdown", "maruku", "bluecloth"

  def render(text)
    engine = case @required
               when "rdiscount"
                 ::RDiscount
               when "peg_markdown"
                 ::PEGMarkdown
               when "maruku"
                 ::Maruku
               when "bluecloth"
                 ::BlueCloth
             end
    engine.new(Haml::Helpers.html_escape(text)).to_html
  end
end

и для удобства использования:

module SafeMarkdown
  def self.render(text)
    Haml::Filters.defined["safemarkdown"].render(text).html_safe
  end
end

Кажется, сейчас работает. У кого-нибудь есть комментарий?

...