BackEnd

Laravelの便利なメールアドレスのバリデーション設定

投稿日:2021年10月25日 更新日:

はじめに

最近、Laravelを使用した案件でメールアドレスでユーザー登録をしてもらう際に、バリデーションを掛けているにも拘らず不正なメールアドレスが登録される不具合がありました。
バリデーションルール設定不足が原因だったのですが、メールアドレスのバリデーション設定について調べる良い機会になったので、紹介したいと思います。

不具合内容

バリデーションルール設定

FormRequestクラスを継承して以下の様にルール設定していました。
email と設定したら、後はLaravel側でいい感じにバリデーションしてくれていると思っていました。

不正なメールアドレス例

実際には以下の様なメールアドレスがバリデーションを通ってしまいました。

・〜@gmailcom(ドット抜け)
・〜@gmail(.com抜け)
・〜 @gmail.com(半角スペース)
・〜.@gmail.com(@マーク前にドット)

対応

結論から言うと、追加設定で対応する事が出来ました。Laravel5.8以降で使用可能となっています。
設定は以下5種類があります。

email:rfc

RFC準拠になっているかチェックする。RFC 5321, 5322, 6530, 6531, 6532が対象とのことです。

email:strict

上記の email:rfc のバリデーション時により厳格にチェックする。
Warningも出した時点でバリデーションエラーとするようです。

email:dns

メールアドレスのドメインが有効かどうかをチェックする。
内部では、dns_get_recordメソッドで DNS_MXDNS_ADNS_AAAA のレコードからドメインチェックしているようです。

email:spoof

偽装文字コードが使用されていないかチェックする。偽装メールアドレス防止などに有効の様です。
内部では、Spoofcheckerクラスを使用してチェックしているようです。

email:filter

RFC準拠になっているかチェックする。
内部でfilter_var()メソッドを使用してチェックしているようです。

修正

ルール検証

以下のコードで検証した所、 strict 又は dns のどちらかでバリデーションに成功しました。

修正後バリデーションルール設定

という事で、修正後のバリデーションルールは以下となりました。
今回は、 strictdns を設定する事で無事に不正メールアドレスをはじく事が出来ました。

さいごに

メールアドレスバリデーションが簡単に実装出来て非常に便利ですね。

おすすめ書籍

PHPフレームワークLaravel Webアプリケーション開発 バージョン8.x対応 PHPフレームワークLaravel Webアプリケーション開発

blog-page_footer_336




blog-page_footer_336




-BackEnd
-,

執筆者:


comment

メールアドレスが公開されることはありません。

CAPTCHA


関連記事

Go言語

Go言語のエラーハンドリングとログローテーション

1 はじめに2 エラーハンドリング2.1 error インターフェース2.2 pkg/errors パッケージ3 独自のエラータイプ付き errorsパッケージを作成4 log パッケージ4.1 lo ...

rails

ShrineでS3に画像をアップロードする

1 はじめに1.1 前提条件1.2 関連記事2 AWS側の準備2.1 S3バケットを作成する2.2 CORSを設定する2.3 アクセス用のユーザを作成する3 Rails側の設定3.1 Initiali ...

laravel logo

LaravelでのCookieファサード利用

1 はじめに2 基本メソッド2.1 付与2.2 取得2.3 削除3 他メソッド3.1 forever3.2 getQueuedCookies3.3 unqueue4 ミドルウェア4.1 AddQueu ...

Go言語

Go言語でテスト作成 testifyの基本的な使い方

1 はじめに2 Goテストフレームワークのスター数3 testifyについて3.1 testifyを導入する方法4 assartionについて4.1 assertion紹介4.2 ElementsMa ...

【Git】マージコミットを消したい

1 はじめに2 例えばこんなことってないでしょうか?3 マージコミットを消す4 さいごに はじめに こんにちは、tonnyです。 今回はGitのケーススタディ的なものを書きたいと思います。 反面教師と ...

フォロー

blog-page_side_responsive

2021年10月
 12
3456789
10111213141516
17181920212223
24252627282930
31  

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。