2015-06-26 1 views
0

Я использую CircleCI для проверки проблем безопасности, и это возникает как ошибка, хотя я не уверен, что это так.Выход Brakeman при предупреждении ошибки кросс-скрипта Небезопасное значение параметра

Это строка кода, которая является причиной одной из ошибок сценариев:

= link_to t(:delete), main_app.board_comment_path(@board, comment), method: :delete 

ли это действительный вопрос безопасности? Есть ли какой-нибудь способ заставить Brakeman принять эти параметры как безопасные? Я читал --url-safe-methods, но я не мог понять, как заставить его работать.

Используется эту ссылку в качестве руководства https://github.com/presidentbeef/brakeman/pull/45

Запуск bundle exec brakeman -A -q --exit-on-warn, это сообщение об ошибке:

+BRAKEMAN REPORT+ 

Application path: **** 
Rails version: 4.2.2 
Brakeman version: 3.0.4 
Started at 2015-06-26 14:10:14 -0700 
Duration: 1.8311 seconds 
Checks run: BasicAuth, ContentTag, CreateWith, CrossSiteScripting, DefaultRoutes, Deserialize, DetailedExceptions, DigestDoS, EscapeFunction, Evaluation, Execute, FileAccess, FileDisclosure, FilterSkipping, ForgerySetting, HeaderDoS, I18nXSS, JRubyXML, JSONEncoding, JSONParsing, LinkTo, LinkToHref, MailTo, MassAssignment, ModelAttrAccessible, ModelAttributes, ModelSerialize, NestedAttributes, NumberToCurrency, QuoteTableName, Redirect, RegexDoS, Render, RenderDoS, RenderInline, ResponseSplitting, SQL, SQLCVEs, SSLVerify, SafeBufferManipulation, SanitizeMethods, SelectTag, SelectVulnerability, Send, SendFile, SessionSettings, SimpleFormat, SingleQuotes, SkipBeforeFilter, StripTags, SymbolDoS, SymbolDoSCVE, TranslateBug, UnsafeReflection, UnscopedFind, ValidationRegex, WithoutProtection, XMLDoS, YAMLParsing 


+SUMMARY+ 

+-------------------+-------+ 
| Scanned/Reported | Total | 
+-------------------+-------+ 
| Controllers  | 23 | 
| Models   | 9  | 
| Templates   | 53 | 
| Errors   | 0  | 
| Security Warnings | 2 (0) | 
+-------------------+-------+ 

+----------------------+-------+ 
| Warning Type   | Total | 
+----------------------+-------+ 
| Cross Site Scripting | 2  | 
+----------------------+-------+ 


View Warnings: 

+------------+------------------------------------------------------------------+----------------------+-------------------->> 
| Confidence | Template               | Warning Type   | Message   >> 
+------------+------------------------------------------------------------------+----------------------+-------------------->> 
| Medium  | boards/show (BoardsController#show) | Cross Site Scripting | Unsafe parameter va>> 
| Medium  | boards/show (BoardsController#show) | Cross Site Scripting | Unsafe parameter va>> 
+------------+------------------------------------------------------------------+----------------------+-------------------->> 
+0

Отчет усечен («Небезопасный параметр va ..»), попробуйте снова запустить brakeman, передав ему флаг '-f csv' или' -f tabs'? Затем, пожалуйста, добавьте всю строку отчета к вопросу. – AOG

ответ

1

Это (почти наверняка) ложный положительный результат, при условии, board_comment_path возвращает путь.

Причина, по которой Brakeman предупреждает о URL-адресах в link_to, заключается в том, что можно установить URL-адреса, такие как javascript:dangerous_stuff_here(). Общим примером может служить профиль пользователя, связанный с веб-сайтом пользователя.

--url-safe-methods применим только к способам обертывания ввода link_to. Например, link_to 'stuff', safe_url(some_input).

Однако после https://github.com/presidentbeef/brakeman/pull/674 кондуктор остановит предупреждение о пути помощниках в URL-адресах, а также расширить --safe-methods/--url-safe-methods, чтобы соответствовать всем типам методов.

Смежные вопросы