Как заставить Brakeman игнорировать определенные пути

Я пытаюсь настроить Brakeman для своих проектов на Rails и хочу, чтобы он игнорировал определенные каталоги и файлы. Я не могу найти опцию, чтобы указать пути для исключения. Кто-нибудь знает возможно ли это?

2 ответа

Решение

Вы можете использовать --skip-files возможность игнорировать определенные файлы, но в настоящее время нет поддержки пропуска целых каталогов. Существует также обратный вариант --only-files который принимает каталоги. Кроме того, есть --skip-libs возможность пропустить только lib каталог. (Вы должны проверить вывод brakeman --help для большего количества вариантов.)

Однако, если вы действительно хотите пропустить весь каталог, вы можете сделать что-то вроде

ls app/some/dir/ | paste -s -d , - | xargs brakeman --skip-files

Если вы используете Brakeman в качестве библиотеки, то вы можете передать файлы в :skip_files:

Brakeman.run(:app_path => "my_app", :skip_files => Dir["my_app/bad/path/*"])

Теперь есть поддержка пропуска целых каталогов. См. https://www.rubydoc.info/gems/brakeman/4.3.1.

brakeman --skip-files file1,/path1/,path2/

После более подробного изучения исходного кода я обнаружил, что Brakeman::Scanner генерирует объект AppTree, который принимает аргумент, называемый skip_files.

Источник находится здесь: https://github.com/presidentbeef/brakeman/blob/master/lib/brakeman/app_tree.rb#L12

Если вы посмотрите дальше в этом файле, вы также можете увидеть, какие каталоги просматривает Brakeman при сканировании. Оказывается, некоторые из моих исключений уже исключены умом Тормоза!

Другие вопросы по тегам