Commit 13bec55
Chris Stockton
fix: tighten email validation rules
The goal here is to limit the conditions which resolver implementations can
affect the determinism of our DNS checks, without allowing transient DNS
failures to block signups:
* Reject single label email domains (`a@a`, `a@gmail`)
* Use absolute FQDN for DNS lookups to avoid implicit search behavior
* Preserves the RFC 5321 fallback, but narrows when it is called
* Add a whitelist for major email providers to lower latency
* Reject mutated display name address that the mail parser might accept
* Add test coverage for some corner cases1 parent c553b10 commit 13bec55
File tree
2 files changed
+130
-9
lines changed- internal/mailer/validateclient
2 files changed
+130
-9
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
56 | 56 | | |
57 | 57 | | |
58 | 58 | | |
| 59 | + | |
59 | 60 | | |
60 | 61 | | |
61 | 62 | | |
62 | 63 | | |
63 | 64 | | |
64 | 65 | | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
65 | 106 | | |
66 | 107 | | |
67 | 108 | | |
| |||
222 | 263 | | |
223 | 264 | | |
224 | 265 | | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
225 | 272 | | |
226 | 273 | | |
227 | 274 | | |
| |||
291 | 338 | | |
292 | 339 | | |
293 | 340 | | |
| 341 | + | |
294 | 342 | | |
295 | 343 | | |
296 | 344 | | |
297 | 345 | | |
298 | 346 | | |
299 | | - | |
300 | | - | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
301 | 351 | | |
302 | 352 | | |
303 | 353 | | |
| |||
320 | 370 | | |
321 | 371 | | |
322 | 372 | | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
323 | 377 | | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
324 | 396 | | |
325 | 397 | | |
326 | 398 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| 6 | + | |
6 | 7 | | |
7 | 8 | | |
8 | 9 | | |
| |||
201 | 202 | | |
202 | 203 | | |
203 | 204 | | |
204 | | - | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
205 | 209 | | |
206 | 210 | | |
207 | 211 | | |
| |||
210 | 214 | | |
211 | 215 | | |
212 | 216 | | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
213 | 236 | | |
214 | 237 | | |
215 | 238 | | |
| |||
235 | 258 | | |
236 | 259 | | |
237 | 260 | | |
238 | | - | |
239 | 261 | | |
240 | 262 | | |
241 | 263 | | |
242 | 264 | | |
243 | 265 | | |
244 | | - | |
245 | | - | |
246 | | - | |
247 | | - | |
248 | 266 | | |
249 | 267 | | |
250 | 268 | | |
251 | 269 | | |
252 | 270 | | |
253 | 271 | | |
254 | | - | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
255 | 278 | | |
256 | 279 | | |
257 | 280 | | |
| |||
268 | 291 | | |
269 | 292 | | |
270 | 293 | | |
| 294 | + | |
271 | 295 | | |
272 | 296 | | |
273 | 297 | | |
| |||
277 | 301 | | |
278 | 302 | | |
279 | 303 | | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
280 | 309 | | |
281 | 310 | | |
282 | 311 | | |
| |||
294 | 323 | | |
295 | 324 | | |
296 | 325 | | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
297 | 346 | | |
0 commit comments