gpt4 book ai didi

ruby-on-rails - 正则表达式攻击向量?

转载 作者:数据小太阳 更新时间:2023-10-29 08:34:56 25 4
gpt4 key购买 nike

在 Ruby 中如何将变量输入“参数化”到正则表达式中?例如,我正在执行以下操作:

q = params[:q]
all_values.collect { | col | [col.name] if col.name =~ /(\W|^)#{q}/i }.compact

由于它 (#{q}) 是一个来自不受信任来源(查询字符串)的变量,我不得不假设它可能是一个攻击媒介。这里有什么最佳做法吗?

最佳答案

尝试 Regexp.escape :

>> Regexp.escape('foo\bar\baz$+')
=> "foo\\\\bar\\\\baz\\$\\+"

所以你的代码看起来像这样:

q = params[:q]
re = Regexp.escape(q)
all_values.collect { | col | [col.name] if col.name =~ /(\W|^)#{re}/i }.compact

关于ruby-on-rails - 正则表达式攻击向量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1955343/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com