web-dev-qa-db-ja.com

プラスサインインのメールアドレスを許可しないセキュリティ上の理由は何ですか?

私の質問は、電子メールアドレスの+記号の禁止についてコメントした後、 このツイート に基づいています。ツイートには、「これはセキュリティ上の理由から取った措置です」と書かれています。

これは、電子メールアドレスにプラス記号が付いている(または使用されている)人々にとってイライラさせられ不便である可能性があり、Webサイトがそうするつもりはないと確信しています。 +文字の使用に関連するセキュリティの脆弱性については知りません。これは、自分のセキュリティを向上させるために変更する必要があることですか? Webサイトが電子メールフィールドでその文字を禁止するセキュリティ上の理由は何ですか?

更新:Meetupサポートは肯定的な反応を示しました。これはセキュリティの問題よりもUXの問題の方が多いことがわかりました。彼らは このツイートで がスパムを防ぐために+を許可しないことを明確にしました(?)および 彼らは提案を認めました ユーザーエクスペリエンスの向上のため。 (ここでの意図は、Meetupに不満を抱くことではありませんでした。穏やかにしましょう!メールアドレスを受信する自分のWebサイトで重要なものを見逃さないようにしたかったのです。)

116
Matt

メールアドレスに「+」が含まれていても、セキュリティ上の脆弱性自体はありません。 RFC 2822 に従って許可されており、SQLやその他の一般的な形式の注入には特に有用ではありません。

ただし、多くのシステム(この目的のためにシステムをMeetupと呼びます)は、ブラックリストではなく、ホワイトリストを介してセキュリティを強化しています。誰かがメールアドレスに表示されると予想される文字の制限されたリスト(おそらく、大文字、小文字、数値、。、_、および-)を定義し、そのリストの外側をブロックするフィルターを作成しました。そして、彼らは誰もが+を使うとは思っていなかったので、あなたは運が悪い。

この記事 は、タグにPostfixを設定し、「+」の代わりに「-」を使用する方法を説明しています。

ただし、Postfixユーザーリストに関する最近の議論の中で、一部のWebサイト(特に銀行)がオンラインフォームに入力するときにJavaScriptを使用して電子メールアドレスを検証すること、およびプラス記号をメールアドレスの有効な文字。

同様の理由で、10年以上前に「+」から「-」に切り替えました。

94
gowenfawr

彼らはおそらく無能であり、彼らがあなたに嘘をついていることさえ知らないかもしれません。

入力検証の観点から見ると、彼らには立脚する足がありません。 有効な電子メールアドレスの形式を厳密に説明する特定のRFCセットがあります 。 RFCによると、電子メールアドレスが技術的に無効であっても、いずれにしてもメールを配信できる可能性があります。所有者がクリックする固有のリンクを含むメールを送信することにより、メールアドレスが配信可能であることを確認できます。

リンクされたサイトが言うように:

悲しいことに、多くのWebサイトでは、プラス記号を使用してアドレスを登録できません。彼らがあなたの追跡戦略を打ち負かそうとしているからではなく、彼らががらくただからです。彼らは壊れた正規表現を危険なウェブサイトからコピーし、それを使ってメールアドレスを検証しています。その結果、顧客を失うことになります。

完全に壊れたコードがあり、検証された電子メールアドレスをUNIXシェルに文字通り貼り付けるためにcrapバリデーターを使用していると仮定しても、それはstillが行いますjoe.bloggs+meetup.com.better.not.sell.this.to.spammers@example.comが無効であると見なされる正当な理由を述べないでください。

メールアドレスでの+の使用を禁止する有効なセキュリティ上の理由はありません。スパマーが複数のアカウントを作成する低料金の方法としてそれを使用したとしても、ウェブサイトは誰かが[email protected][email protected]の両方として登録したかどうかを簡単に確認できます。 Joe Bloggsがサービスを悪用している場合、両方のアカウントを簡単に禁止できます。独自のメールサーバーを持っている人なら誰でも、[email protected][email protected]などの有効なメールアドレスを生成できます。 +の使用を禁止しても、セキュリティは強化されません。

80
Stuart Caie

他の人が指摘したように、プラスサインインの電子メールアドレスを許可しない実際のセキュリティ上の理由はありません。

Web開発者であると私が考えることができる主な理由は、ユーザーが異なるエイリアスを使用して複数の登録を行うことを防ぐことです。

データベース管理者の観点から、プラス記号を受け入れ、同時にメールの登録をメールアドレスごとに1つのエイリアスに制限する場合は、データベースで追加のクエリを実行する必要があります。それ以外の場合は、メールアドレスにUNIQUEキーを設定するだけで、メールアドレスが重複している場合にINSERTを防ぐことができます。

上記の理由は、技術的決定と商業的決定の組み合わせであり、簡単には説明できません。メールアドレスにエイリアスを使用している場合、簡単に解決するには、その部分を削除して登録します。

18