我使用制动器在我的应用程序中生成扫描报告。它在我的模型页面中生成了一个高可信度的格式验证安全警告:
对姓名'的验证不足使用/ + \ w /。使用\ A和\ z作为 第54行附近的锚点
这是我模型中我遇到错误的一行:
validates_format_of :name, :with => / +\w/, :message => "must be your first and last name."
如果名称字段中没有空格,我将显示上述验证。怎么能显示它\ A和\ z格式?
答案 0 :(得分:5)
Brakeman建议在验证正则表达式中使用\A
和\z
- 锚点。它们定义匹配必须从(\A
)开始到(\z
)结束的位置。没有它们,正则表达式可以简单地匹配名称的任何部分。让我们将你的正则表达式转换为包含整个字符串:
/\A\w+ +\w+\z/
如果您只想接受一个空格,可以删除空格后的+
。
也不建议使用普通的正则表达式行开头(^
)和结束($
)锚点,因为只要有一行匹配就足够了,其他所有行都可能无效