オブジェクト(rmodal
)を作成する次のコードがあります。
つまり、クラスには他のいくつかのクラス ( cmodal
、umodal
、ccmodal
、)とのポリモーフィックな関連付けがありますpmodal
。emodal
の作成には、タイプ ( 、など) と ID ( )rmodal
を含む非表示フィールドを持つフォームがありますcmodal
umodal
r_id
次のコードは十分に保護されていますか? Brakeman は現在、この行によってリモート コードが実行される可能性があると指摘しています。
@r_type = params[:r].delete :r_type
if (%w(cmodal umodal ccmodal pmodal emodal).include? @r_type)
@rmodal = @r_type.classify.constantize.find(@r_id) rescue nil
私はr_type
それが許容できる選択肢の1つであることを確認しているので、それで問題ないと推測しています。
これはこれを行う正しい方法であり、十分に安全ですか?