Как проверить xss-защиту метода просмотра-рельса - PullRequest
0 голосов
/ 20 мая 2018

У меня есть вспомогательный метод, который принимает метку и некоторые данные и форматирует ее следующим образом:

  def format_entry(labeltext, infotext)
    content_tag(:div, labeltext, class: 'dataleft') +
        content_tag(:div, infotext, class: 'dataright')
  end

Инфотекст может быть создан пользователем, поэтому я должен убедиться, что существует защита XSS.Поэтому я написал тест:

  test 'no xss in format_entry' do
    label = "LBL"
    info  = "AA<BB"
    render text: format_entry(label, info)
    assert_select('div.dataright', "AA&lt;BB")
  end

Это сработало Rails 4.1.Когда я обновляюсь до Rails 4.2, тест перерывается.Это потому, что в 4.2 assert_select используется Nokogiri, и теперь он оценивает HTML-сущности.Таким образом, он автоматически преобразует &lt; обратно в ">".

Как проверить, что замена действительно произошла?

...