获得警告:拒绝服务

时间:2014-06-05 17:32:00

标签: ruby-on-rails ruby-on-rails-3 denial-of-service

Customer.find(:all, :select => 'id', :order => 'updated_at DESC', :readonly => true, :conditions => { :status_id => Customer.id_for_status(params[:id].to_sym) }, :offset => offset, :limit => 30).collect(&:id)

以上是我的查询,因为我收到了警告

Symbol conversion from unsafe string (parameter value) near line 33: params[:id].to_sym

这是拒绝服务的警告。任何人都知道如何解决此警告?

提前致谢

1 个答案:

答案 0 :(得分:3)

这里的问题是 params [:id] .to_sym

当要转换为符号的字符串是打开集时,您不应将它们转换为符号。创建的每个符号都不会被垃圾收集,并且可能会造成潜在的内存泄漏,使您的系统容易受到Dos攻击。

Ruby 2.2中解决了问题。但仍然 - 相当白色列出任何可以转换成符号的东西。