3

前几天我读了一篇文章,简要介绍了大多数现代网站中一些常见的验证缺陷,我决定对它进行一些研究。

事实证明,大多数网站和电子邮件提供商(hotmail、雅虎)的验证都过于严格。

-

在 RFC 2821 的第 2.3.10 节中

因此,并且由于中间主机试图通过修改它们来优化传输的长期问题历史,本地部分必须仅由地址的域部分中指定的主机解释和分配语义。

在 RFC 2822 的第 3.4.1 节中,它更详细地说明了用户解释的字符串应该是什么!

addr-spec 是一个特定的 Internet 标识符,它包含一个本地解释的字符串,后跟 at-sign 字符(“@”,ASCII 值 64),后跟一个 Internet 域。本地解释的字符串是带引号的字符串点原子

在 RFC 2822 的第 3.2.4 节最后,告诉我们点原子可能包含以下任何字符

$ & * - = ^ ` | ~ # % ' + / ? _ { }

在 RFC 3696中进一步显示有效电子邮件列表。

  • "Abc\@def"@example.com
  • “弗雷德博客”@example.com
  • “乔\吹”@example.com
  • "Abc@def"@example.com
  • 客户/部门=shipping@example.com
  • $A12345@example.com
  • !def!xyz%abc@example.com
  • _somename@example.com

现在,我想问你们所有人,我应该对电子邮件进行多严格的验证。根据 RCF? 或根据人群。那里的大多数人也在验证什么?

4

1 回答 1

2

我通常使用正则表达式来验证电子邮件。regular-expressions.info 有一个很好的页面,包括一个应该符合 RFC 2822 的正则表达式。

另一个问题是哪个 ISP 允许电子邮件地址,例如:!def!xyz%abc@example.com、customer/department=shipping@example.com、“Fred Bloggs”@example.com?我怀疑很少,如果有的话。我认为您不必担心这些奇怪的情况,因为它们很少使用(据我所知 - 我从未见过使用这些表格的任何地址)。

于 2010-07-21T14:19:53.867 回答