2016-08-31 18 views
2

我在我的應用程序中使用了brakeman來生成掃描報告。它生成的格式驗證安全性在我的模型頁高可信警告:使用/ + w /對'name'進行驗證不夠。使用 A和 z作爲錨點

Insufficient validation for 'name' using/+\w/. Use \A and \z as anchors near line 54

這是在我的模型,其中我面對錯誤的行:

validates_format_of :name, :with =>/+\w/, :message => "must be your first and last name." 

如果在名稱中沒有空間字段,我在驗證上方顯示。如何顯示\ A和\ z格式?

回答

4

Brakeman建議在驗證正則表達式中使用\A\z -anchors。他們定義匹配的起始位置(\A)和結束位置(\z)。沒有它們,正則表達式可以簡單地匹配名稱的任何部分。讓我們來改變你的正則表達式來涵蓋整個字符串:

/\A\w+ +\w+\z/ 

您可以將空間後刪除+,如果你只希望接受一個空間。

也不推薦使用正常的正則表達式行開始(^)和結束($)錨,因爲它足夠使一行匹配,並且所有其他行可能無效。