Как заставить 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 при сканировании. Оказывается, некоторые из моих исключений уже исключены умом Тормоза!