0
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

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

提前致谢

4

1 回答 1

3

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

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

问题在 Ruby 2.2 中得到解决。但仍然 - 将任何将转换为符号的内容列入白名单。

于 2015-04-29T13:20:10.047 回答