見出し画像

validatesを増やす

セキュリティの観点からユーザに入力できるところには、制限をかける必要がある。例えば、パスワードだと8文字以上英数字を含むやメールアドレスだと@が含まれているもの等がある。ここでは、基本的なところを作成してみる。

検証

オブジェクト.match(”条件式”)
で行える。
これで、自分が指定した条件がパターンに合致するかを確認することができる。

パスワードの文字数制限を追加する

パスワードの文字数を8~32文字のみ
validates :password, presence: true, length: { minimum: 8, maximum: 32}

パスワードをアルファベット、数字の混合のみ可能にする

/(スラッシュ)で囲むと正規表現オブジェクトを生成すること
参考
https://qiita.com/shizuma/items/4279104026964f1efca6
https://qiita.com/agotoh/items/87960d256e427d5673a9
VALID_PASSWORD_REGEX = /\A(?=.*?[a-z])[a-z\d]{8,32}+\z/
validates :password, presence: true, length: { minimum: 8, maximum: 32}, format: { with: VALID_PASSWORD_REGEX}

メールアドレスの正規表現を追加

@と.が必須にするような条件は以下である
VALID_EMAIL_REGEX = /\A([\w+\-].?)+@[a-z\d\-]+(\.[a-z]+)*\.[a-z]+\z/
validates :email, presence: true, format: {with: VALID_EMAIL_REGEX}

名前の長さに制限を追加する

validates :name, presence: true, length: { maximum: 15}

行ってみたが、まだわからないことが多い。特に正規化はわからない。昨今ではパスワードの規制だけでなく、表示名である名前を不適切な表現では通らないようにしたりしているので、そういうのも学ばなくてはいけないなと思った。

この記事が気に入ったらサポートをしてみませんか?