0

我正在使用 Rails 安全扫描器Brakeman,但我想包含我自己的(自定义)安全检查。就像 CheckSQL、CheckCrossSiteScripting
例如:我想确保所有控制器在过滤器之前都有验证身份验证和授权检查。

问题
刹车手中是否有包含我们自己的自定义检查的选项?
如果是怎么办?

4

2 回答 2

1

EugZol 是正确的,没有关于编写自己的支票的文档。

我建议查看CheckSkipBeforeFilter以了解如何实施查看过滤器的检查。

主要的事情是:

  • 继承自Brakeman::BaseCheck
  • 称呼Brakeman::Checks.add self
  • 实现run_check方法
  • 用于--add-checks-path将 Brakeman 指向您的检查目录
  • 添加一个新的警告代码Brakeman::WarningCodes::Codes> 1000(可选)

一个警告:

主分支上的代码与上一个版本有很大不同,这会影响检查(希望使它们更容易编写)。所以如果你写了一个新的检查,你可能希望对着master运行。还是等3.1吧。

于 2015-08-04T19:02:08.933 回答
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 的方法。

于 2015-08-04T08:18:34.117 回答