respond_to?
,co
nst_defined?
などのメソッドを使っているとDoSされる可能性があると書かれてます。
respond_to?
などのメソッドは内部的にSymbolを生成している→その手のメソッドにユーザー入力値渡してたらまずいんじゃね?
respond_to?('any_method')
をpublic_methods.map{|x| x.to_s}.
include?('any_method')
のように書き換えることで対応したとのこと。Sequelはmap(&:to_s)した値をキャッシュで保持してるのでこんな書き方になってますが、一般的にはpublic_methods.find{|x| x.to_s
== 'any_method'}
かな。スコープやrespond_to?の使われ方によって対策は変わってきますので自分の環境に合わせて修正しましょう。