2015-08-04 7 views
0

Я использую сканер безопасности Rails Brakeman, но я хочу включить свои собственные (пользовательские) проверки безопасности. Точно так же, как CheckSQL, CheckCrossSiteScripting
Например: Я хочу, чтобы все контроллеры имели фильтр перед проверкой проверки подлинности и авторизации.Brakeman Rails сканер безопасности: как добавить нашу собственную проверку.

Вопрос
Есть ли возможность в brakeman включить наши собственные чеки?
Если да, то как это сделать?

ответ

0

Кажется, что отсутствует документация о том, как писать пользовательские правила. Хотя, вы можете написать свои собственные правила, используя существующие в качестве ссылки:

https://github.com/presidentbeef/brakeman/tree/master/lib/brakeman/checks

Например, это один перебирает каждый контроллер в проекте и проверяет их на определенную уязвимость:

https://github.com/presidentbeef/brakeman/blob/35bc224ac9207670e4a448277e6a11745a6b7ef3/lib/brakeman/checks/check_basic_auth.rb

Вы можете переписать метод, чтобы проверить вместо before_filter.

1

EugZol верен, нет документации по написанию собственных чеков.

Я бы рекомендовал посмотреть на CheckSkipBeforeFilter, чтобы получить представление о том, как реализовать проверку, которая смотрит на фильтры.

Основные вещи:

  • Наследовать от Brakeman::BaseCheck
  • Зов Brakeman::Checks.add self
  • Реализовать run_check метод
  • Используйте --add-checks-path, чтобы указать кондуктор на чеку каталог
  • Добавить новое предупреждение код Brakeman::WarningCodes::Codes это> 1000 (продается отдельно)

Одно предостережение:

код на главной ветви существенно отличается от последнего релиза, и что влияет на проверку (надеюсь, их проще писать). Поэтому, если вы пишете новую проверку, вы можете запустить ее против мастера. Или дождаться 3.1.