【发布时间】:2010-12-31 10:40:49
【问题描述】:
我想编写一个函数,允许用户根据正则表达式匹配数据,但我担心用户字符串的卫生。我知道使用 SQL 查询可以使用绑定变量来避免 SQL 注入攻击,但我不确定是否有这样的正则表达式机制。我看到有Regexp.escape,但我想允许有效的正则表达式。
这是示例函数:
def tagged?(text)
tags.each do |tag|
return true if text =~ /#{tag.name}/i
end
return false
end
由于我只是直接在 tag.name 上匹配,是否有可能有人可以插入 Proc 调用或其他东西来打破正则表达式并造成严重破坏?
任何关于最佳实践的建议都将不胜感激。
【问题讨论】:
标签: ruby-on-rails ruby regex security sanitization