我在Model中有哪个方法,我在控制器中调用它。
def some_method
test = Something::Model.where(params[:param1],
params[:param2],
params[:param2],
params[:param3])
..more code here..
end
将我的代码推送到远程分支后,jenkins开始抛出与制动器相关的错误。经过进一步的调查,我发现制动员正在投掷Possible sql injection error at line ``test = Something::Model.where(params[:param1]
所以经过一些研究后我发现我必须使用ActionController::Base.helpers.santize
,所以当我按照以下方式使用它时,它并没有引起任何制动误差。
def some_method
test = Something::Model.where(ActionController::Base.helpers.sanitize(params[:param1]),
ActionController::Base.helpers.sanitize(params[:param2]),
ActionController::Base.helpers.sanitize(params[:param2]),
ActionController::Base.helpers.sanitize(params[:param3]))
..more code here..
end
我的问题是,这是解决该错误的正确方法还是有更好的方法?
感谢您阅读