Я только что начал использовать драгоценный камень brakeman, чтобы изучить мое приложение rails для уязвимостей безопасности.Как защитить уязвимые места для скриптинга link_to @variable
Мне удалось получить все в порядке, за исключением нескольких предупреждений об ошибках между сайтами.
Они все разделяют следующие общие черты:
- Они все теги link_to
- Все они имеют переменные экземпляра в классе, альт или название атрибуты
- Переменные экземпляра все представляют собой активный запрос записи, который содержит связанные модели
- Все переменные экземпляра являются «комментариями». Это описывает полиморфную ассоциацию для генерируемых пользователем комментариев, аналогичную подходу к пересмотренной версии this Railscast.
например
<%= link_to "Click" , :class=> @model.association.attribute, :alt=> @model.association.attribute, :title=> @model.association.attribute, @model.association %>
где
@model = @commentable = Model.includes(:association1, association2: {:nested-association1, :nested-association2}).find(params[:id])
Это то, что я должен быть обеспокоен/принять меры для? Я думал, что Rails 3.2 побеждает по умолчанию.
Я бы приветствовал советы, которые помогут мне лучше понять эту проблему и определить, какие шаги я должен предпринять, если таковые имеются.
спасибо за ваш ответ Джастин. Посмотрев снова на ошибку, я также заметил, что все они являются сложными операторами 'include' (т. Е. Несколько моделей, некоторые из которых вложены). Также (и, возможно, это причина), все они «замечательны». Я уточню свой вопрос более подробно. –
Возможно, рефакторинг моего '@model = @commentable = ARquery' в две строки может решить эту проблему? Но я все еще не уверен, что понимаю, почему это проблема. Не будет ли Rails этого по умолчанию?Цените любые советы, которые помогут мне улучшить мое понимание. –
Обновленный ответ в свете этой новой информации. Похоже, что разделение на две строки разрешает проблему, что является ошибкой в Brakeman. – Justin