【问题标题】:Are unquoted consecutive (like) special characters allowed in an email address?电子邮件地址中是否允许使用不带引号的连续(类似)特殊字符?
【发布时间】:2019-06-18 13:02:33
【问题描述】:

在研究电子邮件地址中是否允许使用两个或多个相同的不带引号的连续特殊字符时,我发现了相互矛盾的信息 (!#$%&'*+-/=?^_`{|}~)。

例如,我知道这些是合法的:
- 我的+email@yahoo.com
- 我的“$$”电子邮件@yahoo.com

我也知道前导句点、尾随句点和双句点是非法的。我的问题是——这样的事情是否合法:
- 我的&&email@yahoo.com

谢谢!

【问题讨论】:

    标签: email-validation


    【解决方案1】:

    RFC 5322 开始,“原子”是定义电子邮件地址中可以包含什么内容的基本单位:

    atext           =   ALPHA / DIGIT /    ; Printable US-ASCII
                           "!" / "#" /        ;  characters not including
                           "$" / "%" /        ;  specials.  Used for atoms.
                           "&" / "'" /
                           "*" / "+" /
                           "-" / "/" /
                           "=" / "?" /
                           "^" / "_" /
                           "`" / "{" /
                           "|" / "}" /
                           "~"
    
    atom            =   [CFWS] 1*atext [CFWS]
    

    “1*”是ABNF 表示“1 或更多”,因此这个产生式不会对允许的字符数或它们的序列施加任何限制。因此,理论上,即使是“my&&&&&&&&email@yahoo.com”也是合法的。

    这在实际中是否可行是由实现定义的;例如,gmail 会忽略地址本地部分中的所有点,以防止基本的欺骗攻击。

    【讨论】:

      猜你喜欢
      • 2020-05-06
      • 1970-01-01
      • 1970-01-01
      • 2010-10-03
      • 2019-01-22
      • 2011-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多