gpt4 book ai didi

ruby-on-rails - 使用模型属性调用的 Brakeman 不安全反射方法常量化

转载 作者:数据小太阳 更新时间:2023-10-29 07:03:29 30 4
gpt4 key购买 nike

在我的 Rails 应用程序中,我收到来自 brakeman 的以下安全警告。使用模型属性调用的不安全反射方法常量化。这是我的代码正在执行的操作。


chart_type = Chart.where(
id: chart_id,
).pluck(:type).first

begin
ChartPresenter.new(chart_type.camelize.constantize.find(chart_id))
rescue
raise "Unable to find the chart presenter"
end

根据我的研究,我还没有找到任何具体的解决方案。我听说你可以创建一个白名单,但我不确定 brakeman 在寻找什么。我试图创建一个数组并在调用 constantize 之前对其进行检查,而 breakman 仍然提示。任何帮助都会很棒。如果您认为这不是必需的修复,能否详细说明为什么它不应该是一个问题?

最佳答案

你可以反过来,找到名称为chart_type的类:

chart_class = [User, Category, Note, Post].find { |x| x.name == chart_type.classify }
if chart_class.nil?
raise "Unable to find the chart presenter"
end
ChartPresenter.new(chart_class.find(chart_id))

这样Brakeman应该会很开心,你也更有安全感......

关于ruby-on-rails - 使用模型属性调用的 Brakeman 不安全反射方法常量化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23741259/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com