Ruby on rails 带正则表达式和转义的MongoID查询

Ruby on rails 带正则表达式和转义的MongoID查询,ruby-on-rails,regex,mongodb,mongoid,Ruby On Rails,Regex,Mongodb,Mongoid,我想知道是否有必要在使用rails/mongoID的查询调用中转义正则表达式 这是我当前的查询: @model.where(nice_id_string: /#{params[:nice_id_string]}/i) 由于正则表达式,我现在不确定它是否不够安全 我应该使用下面的代码还是MongoID转义自动查询调用 @model.where(nice_id_string: /#{Regexp.escape(params[:nice_id_string])}/i) 当然,您应该转义输入。考虑

我想知道是否有必要在使用rails/mongoID的查询调用中转义正则表达式

这是我当前的查询:

@model.where(nice_id_string: /#{params[:nice_id_string]}/i)
由于正则表达式,我现在不确定它是否不够安全

我应该使用下面的代码还是MongoID转义自动查询调用

@model.where(nice_id_string: /#{Regexp.escape(params[:nice_id_string])}/i)

当然,您应该转义输入。考虑<代码> PARAM: [代码:> <代码> >代码>,您当前的查询将是:

@model.where(nice_id_string: /.*/i)
@model.where(nice_id_string: /\.\*/i)
而你的第二个目标是:

@model.where(nice_id_string: /.*/i)
@model.where(nice_id_string: /\.\*/i)
它们做着非常不同的事情,其中一件你可能不想要。有人的态度非常糟糕,可能会在您当前的版本中出现灾难性的回溯,我不确定MongoDB/V8的regex引擎会如何处理