3

弊社オンラインショップにて、「メールアドレスが正しくない」という理由で、特定のユーザーが購入できないという問題が発生しました。次のようになります。

her.email.address.@docomo.ne.jp

無効な電子メール エラーを引き起こしているのは、電子メールのローカル部分の末尾のドットだと思います。コードでは、2 番目の条件をコメントアウトしました。

if (isc_substr($local, 0, 1) == '.' || isc_substr($local, -1, 1) == '.')

それを機能させるために。これは安全ですか?それとも、顧客にメール アドレスを変更するようアドバイスする必要がありますか?

4

2 に答える 2

11

その電子メール アドレスは確かに標準 (RFC 5322) に違反しているため、ユーザーにアドレスを変更することをお勧めします。ただし、ローカル部分がドットで終わることを許可しても、セキュリティへの影響はありません。

標準では、2 つ以上の連続したドットも許可されていません。この制限は、もう少しセキュリティに関連する可能性があります../../。はい、スラッシュは電子メール アドレスに使用できます。スラッシュに対応していないコードは、ローカル部分で問題を起こす可能性があります。可能性は低いですが、たことはあります… ;)

標準は少し読みにくいため、次のように記載されています。

RFC 5322 では、ローカル部分にドットを使用できますが、重要な制限が 2 つあります。2 つ以上の連続したドットは許可されません。また、ローカル部分がドットで開始または終了することも許可されません。

セクション 3.4.1local-partでは、 と、その 3 つの構文について説明します。「通常の」ものはdot-atom構文であり、それは基本的にセクション 3.2.3で次のように定義されています。

dot-atom-text   =   1*atext *("." 1*atext)

一部のatext例外を除いて、印刷可能な US-ASCII 文字は次のとおりです。

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

したがってdot-atom-text、基本的には「少なくとも 1 つのatext文字の後に、[ドットの後に 1 つ以上の文字が続く] が 0 回以上出現する」と定義されますatext。つまり、abc問題はありませんa.bc.dが、.abcそうではなく (で始まらないためatext)、どちらもa..b(atext最初のドットの後に続くものがないため) またはabc.(再び次のドットがないため) ではありませんatext

上で述べたように、これらの制限を無視することもできますが (ドットの連続は許可しないことをお勧めします)、基本的に、ショッピング カート ソフトウェアは、その電子メール アドレスを禁止するのにまったく問題ありません。

于 2013-11-13T19:26:24.523 に答える
3

編集:私の古い答えは間違っていました。

この規則には安全性への影響はまったく見られませんが、RfC 5322では明示的に、メール アドレスのローカル部分の内部のみにドットを使用でき、先頭と末尾には使用できません。そうは言っても、実際には多くのメールサーバーで機能するだけでも驚かないでしょう. したがって、RfC 5322.@example.comによると は有効なアドレスではありませんが、実際には、メール サーバーだけが知ることができる作業アドレスである可能性があります。example.com

私が言ったように、関連する仕様はRfC 5322です。これは、 RfC 5321がローカル部分に 64 文字を超えてはならないという制限を追加することを考慮したものです。そして、そうです、標準では、非常に多くの Web サイトやメール プログラム ( "this is v@lid!"@example.com. この種のアドレスを使用するのは賢明ではありませんが、それはソフトウェアのバグが原因で、アドレスが受け入れられないためです。

于 2013-04-15T08:27:41.753 に答える