ruby-on-rails – 使用模型属性调用Brakeman不安全反射方法const
发布时间:2020-12-16 21:37:59 所属栏目:百科 来源:网络整理
导读:在我的rails应用程序中,我收到了来自制动器的以下安全警告.使用模型属性调用不安全的反射方法constantize.这是我的代码正在做的事情. chart_type = Chart.where( id: chart_id,).pluck(:type).firstbegin ChartPresenter.new(chart_type.camelize.constantiz
在我的rails应用程序中,我收到了来自制动器的以下安全警告.使用模型属性调用不安全的反射方法constantize.这是我的代码正在做的事情.
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 根据我的研究,我没有找到任何具体的解决方案.我听说你可以制作白名单,但我不确定刹车手正在寻找什么.我试图创建一个数组并在调用constantize之前检查它,并且仍然会抱怨破坏者.对此的任何帮助都会很棒.如果你认为这不是一个必要的解决方案,你可以详细说明为什么它不应该成为一个问题吗? 解决方法
您可以反过来找到名称为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应该开心,你更安全…… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |