Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
VeeValidate の"穴"を踏み抜いてしまった
Search
Takuya Eguchi (egch)
September 06, 2019
Technology
1
910
VeeValidate の"穴"を踏み抜いてしまった
Takuya Eguchi (egch)
September 06, 2019
Tweet
Share
More Decks by Takuya Eguchi (egch)
See All by Takuya Eguchi (egch)
TypeScript の class を使い倒す
egch
1
48
Next.js に疲れた私は Vue3 に癒やされた
egch
0
300
Secure な UX のために Content Security Policy について知っておこう
egch
0
48
package.json がすごい
egch
0
140
Nuxt.js のインスタンスライフサイクル総点検
egch
0
410
Webエンジニアのデザイン実装との付き合い方
egch
0
300
20200528 - GCPでもサーバーレスでRubyりたい!
egch
0
130
継続的に楽しくプログラミングするには - 2018/11/3 Rails Girls Sendai
egch
0
110
Other Decks in Technology
See All in Technology
How to Quickly Call American Airlines®️ U.S. Customer Care : Full Guide
flyaahelpguide
0
210
Lakebaseを使ったAIエージェントを実装してみる
kameitomohiro
0
160
united airlines ™®️ USA Contact Numbers: Complete 2025 Support Guide
flyunitedhelp
1
460
CDKTFについてざっくり理解する!!~CloudFormationからCDKTFへ変換するツールも作ってみた~
masakiokuda
1
190
成長し続けるアプリのためのテストと設計の関係、そして意思決定の記録。
sansantech
PRO
0
130
ゼロからはじめる採用広報
yutadayo
3
1k
Rethinking Incident Response: Context-Aware AI in Practice
rrreeeyyy
1
190
CDKコード品質UP!ナイスな自作コンストラクタを作るための便利インターフェース
harukasakihara
2
150
shake-upを科学する
rsakata
7
870
オフィスビルを監視しよう:フィジカル×デジタルにまたがるSLI/SLO設計と運用の難しさ / Monitoring Office Buildings: The Challenge of Physical-Digital SLI/SLO Design & Operation
bitkey
1
260
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
54
21k
IPA&AWSダブル全冠が明かす、人生を変えた勉強法のすべて
iwamot
PRO
2
210
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
235
140k
Art, The Web, and Tiny UX
lynnandtonic
299
21k
Navigating Team Friction
lara
187
15k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
107
19k
The Invisible Side of Design
smashingmag
301
51k
YesSQL, Process and Tooling at Scale
rocio
173
14k
We Have a Design System, Now What?
morganepeng
53
7.7k
For a Future-Friendly Web
brad_frost
179
9.8k
Side Projects
sachag
455
42k
Scaling GitHub
holman
460
140k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Transcript
VeeValidate の”穴”を 踏み抜いてしまった 2019.9.6 v-sendai #3 @楽天株式会社 江口 拓弥
自己紹介 江口 拓弥 v-sendai 皆勤賞で LT やってる人です。 最近の構成は、 Nuxt.js x
TypeScript x Firebase x Auth0 です! 2 akathea_
おことわり このLTで登場するコードは、全て v2系の内容になります… 29 Jul. - VeeValidate 3.0 is out
!!! 3 akathea_
VeeValidateとは? akathea_
“ Template Based Validation Framework For Vue.js 5 akathea_
非同期かつリアルタイムに バリデーションできる 6 akathea_ https://codesandbox.io/s/x2k1l2y17o
ドキュメントも豊富 7 akathea_
i18nも楽ちん! 8 akathea_
こんな感じでバリデーション <input name="mail" :value="mail" placeholder="メールアドレス" validate="required|email" validate-name="メールアドレス" /> 9 akathea_
超便利! akathea_
ある日、痛ましい事件が… 11 メールマガジンが配 信できなかったユー ザー見てたら メアドに全角文字 入ってるんだけどこ れはバグ? ?! 運用チーム
私 akathea_
(そもそも)メールアドレスの 正しいフォーマットって? akathea_
RFC 5322 13 http://srgia.com/docs/rfc5322j.html#p3.4 akathea_
実はこんなメールアドレスがある 14 ◦ ...hoge…@docomo.ne.jp □ 先頭や@直前に「.」は使ってはいけない。「 .」を2回以上連続して使ってはいけない。いけな いのだが、docomoのキャリアメールでは許可されている。 ◦ “hoge
huga”@example.com □ 「“」と「”」に囲まれていた場合、間にスペースが利用できる。 できるが、そもそもダブルクオート使えるメールサービスを知らない。 ◦ 管理者@ぶいせんだい.jp , föö@bår.de □ RFC 6530 によって、メルアド(ユーザー名、ドメイン名どちらも )に マルチバイトが許可された。 Gmailも 2014年に送受信に対応。 とはいえ見たことはない。 akathea_
実はこんなメールアドレスがある 15 ...確かに存在する…! ...するが…! ...こんなアドレスがあるはずがない…! v.sendai3@gmail.co 全角 明らかに typo akathea_
入力値をどうチェックすべきだった? 16 ◦ メールアドレスのベリファイ※は実施していたが 利用時の必須条件にしていなかった ※会員登録されたアドレス宛にワンタイムURL付き確認メールを送信 ◦ 何度も会員登録できる仕組みではなかった →ユーザーは登録ミスに気づいても再登録できなかった →厳格なチェックが必要だった
◦ 「メールアドレスに使える文字は半角だけ」 という固定概念があった ◦ VeeValidateを始め、有名なライブラリなら そのへんも面倒見ていると勘違いしてしまった akathea_
まとめ akathea_
まとめ 18 ◦ 有名なライブラリ・フレームワークにも穴はある □ そもそも日本人以外は、今回の事象を 穴とも思っていないかもしれない ▪ i18n と
l11n は違う ◦ メールアドレスに限らず、世の中の常識が変わっているという 可能性を常に考慮する □ 常に最新の情報をキャッチアップし続ける ◦ 厳格なチェックが必要なときはちゃんとテストする ◦ 本当に穴っぽかったらPR出していこう! akathea_
ご清聴ありがとうございました 19