Javascript 我可以在Meteor find函数中使用用户定义的正则表达式而不转义特殊字符吗?
Javascript 我可以在Meteor find函数中使用用户定义的正则表达式而不转义特殊字符吗?,javascript,regex,mongodb,meteor,Javascript,Regex,Mongodb,Meteor,我有一个简单的过滤器用于搜索保存在数据库中的图像。因此我使用regex:图像 当然,我用check(查询,字符串)检查值函数。如果我不转义正则表达式中的特殊字符(查询变量,其内容由用户指定),这会是一个大的安全问题吗?对我来说,用户可以定义类似(nameOfImage1 | nameOfImage2)的内容是一个优势 根据@Michel Floyd在上面的评论,这不是安全问题,我在find()中使用Regex。但是我也用query.replace(/[\/\\^$*[\]{}]/g,”)替换了一
我有一个简单的过滤器用于搜索保存在数据库中的图像。因此我使用regex:
图像代码>
当然,我用check(查询,字符串)检查值代码>函数。如果我不转义正则表达式中的特殊字符(查询变量,其内容由用户指定),这会是一个大的安全问题吗?对我来说,用户可以定义类似(nameOfImage1 | nameOfImage2)的内容是一个优势 根据@Michel Floyd在上面的评论,这不是安全问题,我在find()
中使用Regex。但是我也用query.replace(/[\/\\^$*[\]{}]/g,”)替换了一些选定的字符代码>根据@Michel Floyd在上面的评论,这不是一个安全问题,我在find()
中使用Regex。但是我也用query.replace(/[\/\\^$*[\]{}]/g,”)替换了一些选定的字符代码>如果他们定义了类似的东西会怎么样?在这种情况下,它什么也找不到-但这不是问题。我只关心安全方面。使用abcdddddddddddddddddddf
会设置超时。许多搜索界面对简单字符串进行“包含”搜索,然后用户可以选择输入显式正则表达式-那些前导/尾随的*
可能会干扰超级用户的意图。从安全角度来看,您可能还可以,因为正则表达式是在.find()
中使用的,而不是在.update()
中使用的。如果它们定义了类似的内容,会怎么样?在这种情况下,它找不到任何东西,但这不是问题。我只关心安全方面。使用abcdddddddddddddddddddf
会设置超时。许多搜索界面对简单字符串进行“包含”搜索,然后用户可以选择输入显式正则表达式-那些前导/尾随的*
可能会干扰超级用户的意图。从安全角度来看,您可能还可以,因为正则表达式正在.find()
而不是.update()
中使用。