【问题标题】:Safe delimiter for dsv of email addresses电子邮件地址 dsv 的安全分隔符
【发布时间】:2017-10-30 10:34:40
【问题描述】:

我需要使用/存储电子邮件地址的分隔符分隔值字符串(不是 csv)。我需要选择一个安全的分隔符。

例如bar@foo.com,baz@foo.com, - 这里的逗号,例如不安全,因为它在电子邮件地址中有效。

似乎is allowed 电子邮件地址中几乎包含任何内容,尤其是现在internationalized 电子邮件地址。

什么是安全的分隔符,可以在不因极端情况而跳过箍的情况下使用?我在the RFC 中找不到明确无效的字符(但有很多与电子邮件相关的相关 RFC,所以我不确定该咨询哪个)。

【问题讨论】:

    标签: email mime email-validation email-address


    【解决方案1】:

    我最初使用\,因为这是一个转义字符,但是如果转义则允许。 @MatWalker 的回答推荐了 CR 或 LF 等内容,但如果它们被转义,它们也是允许的。

    转义、替换和取消转义有点复杂。所以现在我使用控制字符STX(即“文本开头”,十进制2)。

    虽然 RFC 没有提到(据我所知)控制字符是否有效/无效,但似乎没有任何东西使它成为一个糟糕的选择。它确实说控制字符“不鼓励”,但不禁止标题字段。

    【讨论】:

      【解决方案2】:

      您将在哪里/如何存储字符串以及分隔符将用于什么?

      您可以使用不可见的 ascii 字符,例如 CR (Ascii 13) 或 Tab (Ascii 9)。

      【讨论】:

      • 存储在数据库中。你是怎么得到这些字符的? The spec 提到 ascii 控制字符对于正文“不鼓励”,但没有说明标题,所以我认为这些在技术上是允许在电子邮件地址中使用的?诚然,这没有意义,但我们需要依赖正式规范。
      猜你喜欢
      • 2011-10-21
      • 1970-01-01
      • 1970-01-01
      • 2017-06-10
      • 2011-05-20
      • 2011-10-24
      • 2017-05-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多