Как санировать значение атрибута в рельсах - PullRequest
2 голосов
/ 28 декабря 2011

Каков наилучший способ очистки значения атрибута в рельсах? Код выглядит примерно так:

<img alt="<%= h 'untrusted-data' %>" src="image-source-here" />

Меня особенно беспокоит Правило № 2 и Правило № 3 , приведенное на листе предотвращения использования owasp.net XSS.

  1. Сброс атрибута перед вставкой ненадежных данных в общие атрибуты HTML
  2. JavaScript Escape перед вставкой ненадежных данных в значения данных JavaScript

Достаточно ли для этой цели метода html_escape? По какой-то причине я не могу использовать метод tag, предоставленный TagHelper здесь. Использование Rails 2.3.5 версии.

1 Ответ

3 голосов
/ 28 декабря 2011

Да, это достаточно хорошо.(с другим "хотя, но я предполагаю, что это опечатка:)

<img alt="<%=h untrusted %>" src="img.png" />

h не позволит untrusted содержать " и заменит его на &quot;, так что злоумышленник не сможетвыйдите из атрибута * 1008. * Более того, она также не сможет использовать что-либо с помощью атрибута alt, поскольку в нем не выполняется синтаксический анализ.

Например, было бы иначе, если бы он был ватрибут a href, и в этом случае злоумышленник мог бы выполнить некоторый код JavaScript при нажатии даже без возможности выйти из атрибута (например, javascript:alert(/XSSed/);)

...