2016-08-31 6 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のアンカーを使用することを推奨しています。試合の開始位置は(\A)、終了位置は(\z)です。それらがなければ、正規表現は単に名前のどの部分にもマッチすることができます。のは、文字列全体を包含するように、あなたの正規表現を変換してみましょう:

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

一つだけのスペースを受け入れるようにしたい場合は、スペースの後に+を削除することができます。

通常の正規表現の開始(^)と終了($)のアンカーは、一致する行が1行あれば十分で、他の行はすべて無効になるため、使用することはお勧めしません。

関連する問題