例
郵便番号を正規表現でチェックする
エラーが出た実装
user.rb
class User < ActiveRecord::Base
validates :zip_code, format: { with: /^\d{3}\-?\d{4}$/ }
end
これでアプリケーションを実行すると以下のエラーが出ました。
The provided regular expression is using multiline anchors (^ or $), which may present a security risk. Did you mean to use \A and \z, or forgot to add the :multiline => true option?
セキュリティリスクがあるので
- 行頭の
^
は\A
- 行末の
$
は\z
を使え、と言われた。
修正した実装
user.rb
class User < ActiveRecord::Base
validates :zip_code, format: { with: /\A\d{3}\-?\d{4}\z/ }
end
これでエラーは出なくなりました。