В Rails 3 и HAML 3.0.25 любая переменная, отображаемая внутри: plain, может быть проблемой безопасности, потому что она автоматически html_safe? - PullRequest
0 голосов
/ 20 апреля 2011

Похоже, что если у меня есть какая-либо переменная и я отображаю ее в виде строки, необходимо вызвать метод, чтобы вернуть версию html_safe (новый объект другого класса), чтобы избежать любых XSS-атак.

Но если в

:plain
  some content
  some more content...
  the value is #{foo}

тогда они автоматически html_safe. Разве это не лазейка в безопасности, когда кто-то не знает об этом? Правда ли, что либо в Rails, либо в HAML есть что-то, чтобы это предотвратить? Например, HAML может иметь что-то вроде строкового литерала автоматически html_safe, но если есть какая-либо переменная, добавленная или интерполированная, то не стоит автоматически помечать ее html_safe?

1 Ответ

0 голосов
/ 20 апреля 2011

Я думаю, что цель для :plain состоит в том, чтобы использовать большой текст не в формате HTML.

Пожалуйста, укажите :plain раздел в http://haml -lang.com / docs / yardoc /file.HAML_REFERENCE.html

Поэтому, кто использует :plain, должен убедиться, что введенные пользователем теги HTML были отфильтрованы с использованием чего-то вроде sanitize.

...