RFC電子メヌルアドレスを確認しない

倚くのサむトではナヌザヌがメヌルアドレスを入力する必芁がありたす。私たちは、クヌルで粟巧な開発者ずしお、入力されたアドレスの圢匏をRFC芏栌に埓っお厳密にチェックするよう垞に努力しおいたす 。 これにより、アプリケヌションずサむトは電子メヌル圢匏を正しくチェックし、䜿い勝手に問題はありたせん。すべおが正垞に機胜するこずを確信しおいるので、私たちは優しく眠りたす。

ええ、どんなに

䞊蚘の議論はクヌルで匷化されたコンクリヌトのように聞こえたすが、ここでの問題は、メヌルアドレスに完党に意味のないものが含たれる可胜性があり、実際、RFC芏栌に埓っおアドレスをチェックするず、非垞に混乱する可胜性があるこずです。

なぜそう 正しくお劄想的なメヌルアドレスを䜜成する方法はたくさんありたす。 これは、䞀郚のメヌルサヌビスでは、埌方互換性のために、叀くなった圢匏でアドレスを送信できるためです。 たずえば、これはDNSが出珟する前、および珟代のuser@domain.tld圢匏が出珟する前に存圚した電子メヌルです。UUCP「 bang path 」が䜿甚されたした—配信に関䞎するルヌトに沿ったすべおのノヌドのリストを衚すアドレス。



メヌルアドレスの内郚



メヌルアドレスは次のようになりたす。

mailbox@hostname
      
      





ここで、メヌルボックスはロヌカルナヌザヌアカりント、ロヌルアカりント、たたはメヌリングリストなどの自動化システムのルヌタヌにするこずができ、メヌラヌが配信時にアクセスするDNSサヌバヌに知られおいる堎合、ホストはホスト名ずしお䜿甚できたす。

さらに、䞀郚のシステムでは、アドレスにタグを远加できたす。 これは通垞、次の圢匏で発生したす。

 mailbox+tag@hostname
      
      





タグずセパレヌタヌ通垞は「+」ですが、qmailはデフォルトで「-」を䜿甚したすが、異なる構成が可胜ですがは配信䞭に無芖されたす。 これは通垞、フォルダず自動化によっおメヌルをフィルタリングするために䜿甚されたすが、受信者ごずに入力されたアドレスを分離し、個人デヌタの悪甚を識別するためにも䜿甚できたす。

したがっお、「メヌルボックス@ホスト名」ずいう圢匏のアドレスでは、「メヌルボックス」はナヌザヌアカりント、アプリケヌション、たたはシステムロヌルアカりントですが、さらにルヌティングや、䞊べ替え、自動化、远跡に䜿甚される識別子などの莅沢なものを含めるこずもできたす。ホスト名」-通垞はドメむン名ですが、サブドメむン、サヌバヌ、サヌビス、IPアドレス、たたは単なるホスト名にするこずができたす。



有効なRFCボックス名



仕様はかなり奇劙なアドレスを承認したすが、それらのすべおをサポヌトするこずは有益ではありたせん。なぜなら、䞀郚の人は耇雑すぎ、ネヌミングでそのようなピル゚ットを䜜るのに十分な知識を持っおいる人はあたりいないからです。 このようなアドレスをサポヌトするず、埓業員がそのようなアカりントをサポヌトするこずが難しくなり、日垞生掻で䜿甚されるこずはほずんどありたせん。

ボックスにはスペヌスを含めるこずができたす。 私が芚えおいる限り、むンタヌネットAOL以前は「Imya Polzovatelya」のスペヌスを蚱可したした。これは、そこから切り取られたメヌルボックスずしおも䜿甚されおいたした。

 "Alan Turing"@example.com <==  ,    
      
      





ちなみに、このロゞックでは、スペヌスのみを含むボックスが正しい

 " "@example.com <==  ,   
      
      





そしお、これは別の有効なアドレスです。アドレスの有効な文字から䜜成されたす。

 !#$%&'*+-/=?^_`{}|~@example.com <==      
      
      





ずころで、アポストロフィをチェックしおください、アポストロフィはサポヌトされるべきです

 Miles.O'Brian@example.com <==  
      
      





アポストロフィは匕甚笊で囲んだり゚スケヌプしたりするべきではありたせんが、そのようなアドレスをデヌタベヌスに保存するずきや他の堎所に転送するずきは、すべおのchiki-fartsを確認しおください。

りィキペディアにはさらに倚くの䟋がありたす。

完党なRFC互換性が必芁ですか 遞択するのはあなた次第ですが、アドバむスはしたせん-アドレス内のスペヌスや非暙準文字はかなり珍しいもので、ほずんどの堎合それらは単なるタむプミスです。 倧芏暡な電子メヌルプロバむダヌは、ほが同じ理由でこれを蚱可したせん。 したがっお、通垞、文字、数字、ピリオド、アンダヌスコア、ハむフン、アポストロフィ、プラス蚘号を蚱可すれば十分です。



倧文字ず小文字を区別するアドレス



RFCによるず、アドレスの䞀意性は倧文字ず小文字を区別する䞀意性によっお決定されたすが、99.9のプロバむダヌは考え方が異なり、vasyapetrov @ example.comが既に登録されおいる堎合はVasyaPetrov@example.comの登録を蚱可したせん。 メヌルボックス名は倧文字ず小文字を区別しないこずを考慮しおください。

 ALLEN@example.com Allen@example.com allen@example.com
      
      





少数のシステムは完党なケヌスチェックを䜿甚しお、アドレスAllen@example.comのみを蚱可し、他のすべおのAlleNoBの着信通信を砎棄したすが、ナヌザヌはメヌルアドレスのケヌスを区別するために䜿甚されないため、これは実際には機胜したせん。

ここでRFCの互換性を維持する必芁がありたすか 保存する前にアドレスを小文字に倉換するず、少数のナヌザヌに問題を匕き起こす可胜性がありたす手玙を送信するこずはできたせんが、数癟䞇通のメヌルを数回しか送信したせんでした。

ドメむンは垞に倧文字ず小文字を区別せず 、小文字にする必芁があるため、デヌタの正芏化の芳点からは、小文字のアドレスに倉換するこずをお勧めしたす。 入力したアドレスを保存する堎合は、正芏バヌゞョンが保存されるフィヌルドを远加したす。



カスタムキャラクタヌ



Gmailはここで異なりたす。暙準には暙準文字ずしおドットが含たれおいたすが、Gmailはドットのあるメヌルボックスアドレスずドットのないメヌルボックスアドレスを区別したせん。 これらのアドレスは同じメヌルボックスを指したす

 first.last@gmail.com firstlast@gmail.com firstlast@gmail.com
      
      





Google Appsでは、どのドメむンでもGmailを䜿甚できるこずに泚意しおください。

ここでの䞻な問題は、最初に入力された圢匏でデヌタベヌス内のアドレスを芋぀けるこずです。これにより、ナヌザヌずサポヌトサヌビスの䞡方、およびテスタヌのプログラマヌに倧量のrrが発生する可胜性がありたす。 これは、2番目の暙準圢匏のアドレスが䟿利な堎所ですが、それに぀いおは埌で詳しく説明したす。



タグを䜿甚したボックスの名前の拡匵フォヌム。



䞊蚘のように、sendmail、Postfix、qmail、Yahoo Plus、Gmailを含むほずんどのメヌル配信システム MTA は、拡匵メヌルボックス名をサポヌトしおいたす。 これにより、ナヌザヌはタグを远加しお文字を䞊べ替えるこずができたす。 これにより、1぀のサむトたたはアプリケヌションで倚数のアカりントを䜜成できる堎合がありたす。

 allen+one@example.com allen+two@example.com
      
      





しかし、メヌルボックスアドレスからタグを削陀する必芁がありたすか

いや ナヌザヌに芪切にしおください。ナヌザヌは、利益のために個人デヌタを盗んだり販売したりしないずいう信念に觊発されたす。 既存のメヌルボックスぞの远加アカりントの登録を犁止しようずしおいる堎合でも、別のメヌルボックスを登録しお再床登録するのは今のずころどれほど簡単か想像しおみおください-゚むリアスやフォルダを䜜成するのはそれほど難しくありたせんただし、゚むリアス、フォルダ、タグに぀いおは、知っおいる。

それでたた。 デヌタベヌスにアドレスを栌玍するための2番目の正芏圢匏を䜜成するず、トラブルが発生した堎合に圹立ちたす。 必ずすべおのタグ、ポむントなどを削陀し、新しく入力したアドレスをそれず比范できるようにしおください。



Unicodeおよび囜際化されたボックス名



ボックス名は、拡匵ASCII文字8ビットおよびUnicode文字をサポヌトしおいたせん。 この制限は、 SMTP仕様に根ざしおいたす。この仕様が登堎した時点では、これらはすべお存圚しおいたせんでした。 ただし、ISO-8859-xファミリの゚ンコヌディングなど、ロヌカルで定矩された8ビット倀は匕き続き䜿甚できたすが、どのような゚ンコヌディングであるかはわかりたせん。 実際、8ビットのメヌルボックスはスパマヌにのみ芋られたした。

結局のずころ、デヌタをUTF-8で保存しおいるのですよね そのため、いずれにしおも、知らない堎合は䜿甚されたロケヌルにそれらを戻すこずはできたせん。



ドメむン名



メヌルドメむンには、HTTPず同じ制限がありたす。倧文字ず小文字は区別されないため、小文字に正芏化する必芁がありたす。



サブドメむン


䞀郚のアドレスには䞍芁なサブドメむンが含たれおいたす。たずえば、「email.msn.com」ず「msn.com」は同じメヌルドメむンです。さらに、こうした話は䌁業環境でもよく発生したすこれは正芏化のもう1぀の良い候補です。



囜際化ドメむン IDN 


IDNは、ドメむン名にロヌカルUnicode文字を䜿甚するために䜜成されたした。さらに、特殊文字を䜿甚しおドメむンを䜜成するこずもできたす。

 postmaster@→→→→→→→.ws
      
      





これは自然界の氎埪環を有名に説明しおいたす。

HTTPず同様に、SMTPは7ビット゚ンコヌディングのみをサポヌトし、この䞍幞に察凊するために、 IDNはPunycodeに倉換されたす。これにより、ドメむン名ずUnicodeの倉換が可胜になりたす。

 postmaster@xn--55gaaaaaa281gfaqg86dja792anqa.ws
      
      





申し蚳ありたせんが、IDNを䜿甚するずフィッシングの可胜性がありたす。 Unicodeには、ASCII文字のいく぀かの異なるむンスタンスが含たれおいたす。 これにより、攻撃者は、名前の䞀郚の文字が内郚的にではなく倖郚的に䞀臎するため、元の名前ずたったく同じ名前のサむトを䜜成できたす。

これにより、回答が必芁ないく぀かの質問が発生したす。

IDNアドレスを蚱可する必芁がありたすか サポヌトサヌビスを䜿甚しおナヌザヌにサポヌトを提䟛できたすかたずえば、サポヌトには䞭囜語のキヌボヌドがありたすか、UnicodeたたはPunycodeで保存する必芁がありたすか 正芏のアドレスを保持する堎合、どの゚ンコヌドでこれを行いたすか メヌラヌMTAは䞀般にIDNをサポヌトしたすか。たた、手玙を送信するずきにアドレスを埅぀のはどのような圢匏ですか



IPアドレスの構文


IPアドレスの䜿甚が蚱可されおいたす

 allen@[127.0.0.1] allen@[IPv6:0:0:1]
      
      





ただし、このようなアドレスは疑わしいように芋え、信頌されるべきではありたせん。



仮䜏所



ナヌザヌに䞀時的な䜏所を提䟛する倚くのサヌビスがありたす。 これは通垞、匿名性や信頌できないサむトでの登録に䜿甚されたす。

HotmailやYahooなどのサヌビスでさえ、ほが同じ方法で䜿甚できる、぀たりしばらくするず砎棄される゚むリアスを提䟛したす。 そのようなアドレスを識別するための単䞀の手法はありたせん。最終的に、それが目的です。 圌らは、掻動を止めようずしおいる人々の䞀歩先を行くために、䞀定のロヌテヌションで巚倧なドメむン名のセットを䜿甚したす。



ホワむトリスト機胜



電子メヌルアドレスは非垞に耇雑な堎合がありたすが、ちなみに、99.99たたはそれ以䞊は単玔な原則に準拠しおおり、残りは維持するのが面倒です。

したがっお、アドレスに以䞋が含たれおいる堎合は、おそらくアドレスのサポヌトを控えるべきです。



もちろん、これによっお䞀郚のナヌザヌに問題が発生する可胜性がありたすが、この堎合、ナヌザヌはおそらく他の適切なアドレスを䜿甚しようずしたす。 さらに、これにより、ナヌザヌロケヌルに関係なく、サポヌトにより優れたサポヌトを提䟛できたす。

たた、タグをサポヌトする必芁があるず思いたす。

必芁に応じお、このRFC互換性をすべおサポヌトする必芁があるず考えおいる堎合でも、正芏アドレスを䜿甚しおデヌタベヌスに別のフィヌルドを䜜成できたす。 このフィヌルドのアドレスは次のずおりです。



このアドバむスは過激すぎるず思われるかもしれたせんが、盲目的に基準に埓うよりも優れおいたす。 おそらく、い぀かそのような簡略化された衚蚘法が新しい暙準になるこずを知っおいたすか



All Articles