【发布时间】:2018-09-17 19:42:16
【问题描述】:
我正在开发旧版 Rails 应用程序,控制器有许多 params.permit! 实例。在对其运行 Brakeman 扫描时,params.permit! 会向应用程序打开大量分配漏洞。
我的问题是 - 绕过这个 params.permit 的最有效方法是什么!漏洞并替换它?
【问题讨论】:
标签: ruby-on-rails ruby security actioncontroller brakeman
我正在开发旧版 Rails 应用程序,控制器有许多 params.permit! 实例。在对其运行 Brakeman 扫描时,params.permit! 会向应用程序打开大量分配漏洞。
我的问题是 - 绕过这个 params.permit 的最有效方法是什么!漏洞并替换它?
【问题讨论】:
标签: ruby-on-rails ruby security actioncontroller brakeman
【讨论】:
我假设有人添加了 params.permit!在 Rails 升级后避免查看“强参数”并正确设置。
解决此问题的正确方法是遍历每个控制器并查看您需要和希望为每个操作允许的参数,然后使用 params.permit(不带感叹号)为允许的参数设置白名单:
https://apidock.com/rails/ActionController/Parameters/permit
【讨论】:
我还发现,在单独的参数调用上使用 to_unsafe_hash 方法将有效并绕过 Brakeman 警告。有关方法的一些信息在这里:https://apidock.com/rails/v4.2.7/ActionController/Parameters/to_unsafe_hash
【讨论】: