Frage:
Was sind die Sicherheitsgründe für die Nichtzulassung der Plus-Anmelde-E-Mail-Adressen?
Matt
2014-08-12 23:37:26 UTC
view on stackexchange narkive permalink

Meine Frage basiert auf diesem Tweet, nachdem ich das Verbot von + -Symbolen in E-Mail-Adressen kommentiert habe. In dem Tweet heißt es: "Dies ist eine Maßnahme, die wir aus Sicherheitsgründen ergriffen haben."

Dies kann frustrierend und unpraktisch für Personen sein, die E-Mail-Adressen mit Pluszeichen versehen (oder verwenden), und ich bin es Sicher, dass Websites dies nicht beabsichtigen. Mir sind die Sicherheitslücken im Zusammenhang mit der Verwendung des Zeichens + nicht bekannt. sollte ich das ändern, um meine eigene Sicherheit zu verbessern? Was ist der Sicherheitsgrund für eine Website, dieses Zeichen in einem E-Mail-Feld nicht zuzulassen?

Update: Der Meetup-Support reagierte positiv. Es stellt sich heraus, dass es sich eher um ein UX-Problem als um ein Sicherheitsproblem handelt. Sie haben in diesem Tweet klargestellt, dass sie + nicht zulassen, um Spam (?) Zu verhindern, und sie haben einen Vorschlag zur Verbesserung der Benutzererfahrung anerkannt. (Ich wollte mich hier nicht über Meetup beschweren. Seien wir vorsichtig! Ich wollte sicherstellen, dass mir auf meinen eigenen Websites, die E-Mail-Adressen erhalten, nichts Wichtiges entgeht.)

Ich bezweifle, dass sie einen gültigen Sicherheitsgrund haben, sondern nur faul sind und dies nicht beheben möchten.
Abgesehen davon kann es möglich sein, diese Validierung zu umgehen, wenn sie clientseitig erfolgt (IE durch Javascript). Außerdem, @martialdidit,, sollten Sie die Frage nur als Favorit markieren und nicht kommentieren, dass es etwas ist, auf das Sie zurückkommen werden.
Verwandte: ["plus Hasser"] (http://mozilla.wikia.com/wiki/User:Me_at_work/plushaters)
Auch ich benutze das + -Zeichen häufig in meiner Google Mail-Adresse, um E-Mails herauszufiltern und um zu sehen, wer meine E-Mail-Adresse verkauft hat. Ich glaube, dass die meisten Websites nur denselben regulären Ausdruck verwenden, um die Gültigkeit einer eingegebenen E-Mail-Adresse zu überprüfen, und dass dieser reguläre Ausdruck kein + -Zeichen zulässt. Ich habe viele Websites kontaktiert, und die meisten antworten, dass das System nur so funktioniert (d. H. Sie sind zu faul, um das Problem zu beheben).
Eine Sache, die ich denken kann, hat nichts mit der Registrierung auf einer Website zu tun. Einige E-Mail-Clients zeigen möglicherweise eine E-Mail von "phisher + paypal@ItsLikeFishing.com" als E-Mail von PayPal an. Obwohl dieses Problem bereits Jahre alt ist und von den meisten Mail-Anbietern "behoben" wurde
Ich frage mich, wer von MeetUp diesen Beitrag gesehen hat ...
Dies erinnert mich an [einen weiteren dummen Tweet aus dem letzten Jahr] (https://twitter.com/BritishGasHelp/status/463619139220021248)
Ein Grund ist, dass zumindest bei Google Mail alles nach dem "+" ignoriert wird. Das bedeutet, dass "Beispiel + a@gmail.com", "Beispiel + b@gmail.com" usw. an die E-Mail-Adresse "Beispiel@gmail.com" gesendet werden. Dies ist hilfreich, um herauszufinden, wer Ihre Informationen verkauft. Wenn ich mich beispielsweise mit "example + fabrikam@gmail.com" für den Newsletter von Fabrikam Inc. anmelde und eine E-Mail von Contoso Ltd. an "example + fabrikam@gmail.com" erhalte, weiß ich, dass Fabrikam meine verkauft Information.
Mit Google Mail können Sie eine unbegrenzte Anzahl von Adressen mit einem Plus an dieselbe Adresse weiterleiten. Das heißt, bob + xxx@gmail.com leitet an bob@gmail.com weiter. Wenn die Website es Benutzern ermöglichen würde, E-Mail-Adressen wie diese zu verwenden, hätten Spammer eine einfache Möglichkeit, eine unbegrenzte Anzahl von Konten aus einer einzigen E-Mail-Adresse zu erstellen.
@JamesT.Huggett Zu diesem Zeitpunkt handelt es sich eher um ein Engineering- / UX-Problem als um ein echtes Sicherheitsproblem. Es gibt Möglichkeiten, den "Plus" -Teil einer Google Mail-Adresse zu entfernen oder zu ignorieren und nach Duplikaten zu suchen. Die Implementierung kann unpraktisch sein, bietet dem Benutzer jedoch mehr Sicherheit / Kontrolle.
Ich lese ihre Antwort so: "Wir möchten Ihre E-Mail-Adresse mit anderen verkaufen können, ohne dass Sie uns mitteilen können, dass wir dies getan haben."
@Cole Eine andere Verwendung dafür ist das Filtern von E-Mails: Ich kann festlegen, dass E-Mails, die an "mein Name + Banken@gmail.com" gesendet werden, in einen bestimmten Ordner verschoben werden.
Aus diesem Grund habe ich meinen Mailserver so konfiguriert, dass er den Unterstrich als Dekorationszeichen verwendet (natürlich zusätzlich zu "+"). Jetzt kann ich mich bei "doktorj_shadysite@example.com" anmelden und es geht tatsächlich zu "doktorj@example.com"`mit all meinen anderen E-Mails, ist aber filterbar und rechenschaftspflichtig, und Unterstriche sind in E-Mail-Adressen häufig genug, dass die meisten Orte dies akzeptieren: D.
Ein weiteres Problem mit dem + -Zeichen besteht darin, dass Sie die URL-Escape-Funktion * korrekt * festlegen müssen, da sie sonst stillschweigend als Leerzeichen neu interpretiert werden kann, da Leerzeichen im frühen Web als + in URL-Parametern codiert wurden.Ich habe gesehen, dass viele Webformulare ein + -Zeichen in einer E-Mail-Adresse akzeptieren, es jedoch in ein Leerzeichen auf der nächsten Seite ändern.Die Lösung besteht darin, die URL zu bearbeiten und das + in% 2B zu ändern, das ein URL-codiertes + Zeichen ist.
@gpvos Ja, ich habe dieses Problem vor einigen Wochen auf einer Händler-Website gefunden und gemeldet.(Sie haben mich mit einem Gutschein belohnt.) Die Adressierung war also immer noch rentabel ...
Vier antworten:
gowenfawr
2014-08-13 00:32:01 UTC
view on stackexchange narkive permalink

Es gibt per se keine Sicherheitslücke, wenn Ihre E-Mail-Adresse ein '+' enthält. Es ist gemäß RFC 2822 zulässig und für SQL oder andere gängige Formen der Injektion nicht besonders nützlich.

Viele Systeme (nennen wir Meetup zu diesem Zweck ein System) erzwingen jedoch die Sicherheit durch Whitelisting, nicht Blacklisting. Jemand hat eine begrenzte Liste von Zeichen definiert, die in E-Mail-Adressen erwartet werden (wahrscheinlich oben, unten, numerisch,., _ Und -), und einen Filter geschrieben, um alles außerhalb dieser Liste zu blockieren. Und sie dachten nicht, dass irgendjemand + verwenden würde, also haben Sie kein Glück.

In diesem Artikel wird beschrieben, wie Sie Postfix für das Tag einrichten und '-' verwenden. anstelle von '+', weil:

Während einer kürzlich durchgeführten Diskussion über die Postfix-Benutzerliste wurde jedoch erwähnt, dass einige Websites (insbesondere Banken) JavaScript verwenden, um zu versuchen, E-Mail-Adressen zu validieren, wenn sie vorhanden sind in Online-Formulare eingegeben, und dass viele das Pluszeichen nicht als gültiges Zeichen in einer E-Mail-Adresse zulassen.

Ich habe vor über einem Jahrzehnt von '+' auf '-' gewechselt. aus ähnlichen Gründen.

Können Sie eine Kombination aus + und - verwenden? Ich weiß, dass Google Mail versuchen wird, Ihre + Tags nach Möglichkeit in separate Labels zu filtern, dh my.email + spam@gmail.com sendet alle E-Mails von diesem bestimmten Dienst an das Spam-Tag. Ich habe my.email-spam@gmail.com jedoch noch nie ausprobiert.
Kurz gesagt, sowohl + als auch - sind zulässige Zeichen, und Sie können beide in beliebiger Kombination in Ihrer E-Mail-Adresse verwenden. Es liegt jedoch an Ihrem Mailserver, wie das gehandhabt wird. Courier und Postfix unterstützen beide das Taggen mit einfachen Konfigurationseinstellungen, aber ich denke auch nicht, dass zwei Tag-Marker ohne zusätzliche Arbeit unterstützt werden. YMSMV (Ihr Mailserver kann variieren).
Wenn Sie keinen eigenen Mailserver betreiben, können Sie nicht steuern, wie dieser einen Bindestrich verarbeitet. In den meisten Fällen ist "doktor-spam@example.com" eine völlig andere E-Mail-Adresse / ein anderes Konto als "doktor@example.com". OTOH, die meisten Anbieter behandeln "doktor + spam@example.com" genauso wie "doktor@example.com", sodass Sie es für clientseitige Filterzwecke verwenden können.
Es ist wichtig zu beachten, dass gemäß [RFC 822] (http://www.faqs.org/rfcs/rfc822.html) die folgenden Zeichen ausdrücklich nicht zulässig sind: `() <> @ ,; : \ "[]` (technisch `.` gehört auch hierher, wird aber etwas anders gehandhabt und ist in gewisser Weise erlaubt)
@DoktorJ ist in einem zitierten lokalen Teil nichts erlaubt? Oder erlaubt RFC 822 keine zitierten lokalen Teile? (RFC 821 tut dies, was als problematische Inkonsistenz erscheint)
@Seiyria Ich habe das gerade getestet und es funktioniert nicht, zumindest nicht mit benutzerdefinierten Etiketten.
@immibis Ja, Sie haben Recht: RFC 822 ermöglicht, dass der lokale Teil eine Folge von durch Punkte getrennten "Wörtern" ist, und ein "Wort" kann eine Zeichenfolge in Anführungszeichen sein, die ein beliebiges Zeichen enthalten kann (von denen einige möglicherweise sein müssen) Backslash-Escape). RFC 2822 erlaubt dies ebenfalls, gibt jedoch an, dass es "NICHT verwendet werden sollte".
Gibt es einen Grund, nicht alle gültigen E-Mail-Adressen zu unterstützen (außer vielleicht der Einfachheit der Überprüfung der Adresse)?
@Kat Ich habe einige clientseitige Überprüfungen durchgeführt und festgestellt, dass ich am Ende einer E-Mail immer eine ".domain" erzwingen möchte, obwohl so etwas wie "me@localhost" technisch eine gültige Adresse ist.
Stuart Caie
2014-08-13 00:53:52 UTC
view on stackexchange narkive permalink

Sie sind wahrscheinlich inkompetent und wissen möglicherweise nicht einmal, dass sie Sie anlügen.

Unter dem Gesichtspunkt der Eingabevalidierung haben sie kein Standbein. Es gibt eine Reihe spezifischer RFCs, die das Format einer gültigen E-Mail-Adresse genau beschreiben. Selbst wenn eine E-Mail-Adresse laut RFC technisch ungültig ist, kann es dennoch möglich sein, E-Mails an sie zu senden. Sie können überprüfen, ob eine E-Mail-Adresse zustellbar ist, indem Sie eine E-Mail mit einem eindeutigen Link an den Eigentümer senden, auf den der Eigentümer klicken kann.

Wie auf der verlinkten Website angegeben:

Leider viele Auf Websites können Sie keine Adresse mit einem Pluszeichen registrieren. Nicht weil sie versuchen, Ihre Tracking-Strategie zu vereiteln, sondern nur, weil sie Mist sind. Sie haben einen fehlerhaften regulären Ausdruck von einer zwielichtigen Website kopiert und verwenden ihn zum Überprüfen von E-Mail-Adressen. Und Kunden verlieren dadurch.

Selbst wenn wir davon ausgehen, dass sie den Code vollständig gebrochen haben und einen Mistprüfer verwenden, weil sie die validierte E-Mail-Adresse buchstäblich in eine UNIX-Shell einfügen, noch gibt keinen gültigen Grund an, warum joe.bloggs+meetup.com.better.not.sell.this.to.spammers@example.com als ungültig angesehen werden sollte.

Es gibt keinen gültigen Sicherheitsgrund, die Verwendung von + in E-Mail-Adressen zu verbieten. Selbst wenn Spammer es als kostengünstige Möglichkeit verwenden, mehrere Konten zu erstellen, können Websites leicht erkennen, ob sich jemand sowohl als joe.bloggs+1@example.com als auch als joe.bloggs + angemeldet hat 2@example.com ; Wenn Joe Bloggs ihren Dienst missbraucht, können sie beide Konten leicht sperren. Jeder mit einem eigenen Mailserver kann gültige E-Mail-Adressen wie joe.bloggs1@example.com , joe.bloggs2@example.com generieren. Sie erhalten keine zusätzliche Sicherheit, indem sie die Verwendung von + verbieten.

Das war auch mein Denken, aber ich war mir nicht ganz sicher. Danke für die Erklärung. Ich gehe davon aus, dass die meisten dieser Websites nicht wirklich inkompetent sind, aber es ist wahrscheinlich, dass es Fehlinformationen und wilde Annahmen gibt, die weitergehen. Ich denke, das eigentliche Problem ist eher eine UX-Sache, keine Sicherheit.
Vielleicht ist der "Sicherheitsgrund", dass sie Ihre E-Mail-Adresse an Spammer verkaufen und versuchen, sich gegen Benutzer zu * sichern *, die sie als Anbieter identifizieren ;-) Natürlich scheitern sie aus dem Grund, den Sie sagen, dass jemand mit ihrer eigenen Domain wird herausfinden, was sie tun.
"Jeder mit einem eigenen Mailserver kann gültige E-Mail-Adressen generieren" Es gibt auch einige vorhandene Mail-Dienste, die alle Benutzernamen als gültig zulassen (z. B. mailinator.com und seine Aliase).
Nun, sie akzeptieren möglicherweise die E-Mail-Adresse als "GET" -Parameter irgendwo und veröffentlichen sie ohne Validierung auf einer Unix-Shell (indem sie das Plus in ein Leerzeichen verwandeln). In diesem Fall ist natürlich der ganze Ansatz, einen Charakter nicht zuzulassen, anstatt eine ordnungsgemäße Validierung durchzuführen, so dumm, dass die "Lösung" irgendwie krank ist ...
Question Overflow
2014-08-13 10:59:59 UTC
view on stackexchange narkive permalink

Wie andere bereits betont haben, gibt es keine wirklichen Sicherheitsgründe dafür, eine Plus-Anmelde-E-Mail-Adresse nicht zuzulassen.

Als Webentwickler kann ich mir vor allem vorstellen, dass Benutzer nicht mehrere erstellen Registrierungen mit unterschiedlichen Aliasnamen, insbesondere auf einer E-Commerce-Website, auf der Sie ein einmaliges kostenloses Angebot haben, das Sie auf jeden Einzelnen beschränken möchten.

Aus Sicht eines Datenbankadministrators eine zusätzliche Abfrage in der Datenbank muss gemacht werden, wenn Sie das Pluszeichen akzeptieren und gleichzeitig die Registrierung von E-Mails auf einen Alias ​​pro E-Mail-Adresse beschränken möchten. Andernfalls würde das Festlegen des Schlüssels UNIQUE für die E-Mail-Adresse ausreichen, um ein INSERT zu verhindern, wenn die E-Mail-Adresse ein Duplikat ist.

Die oben genannten Gründe sind eine Kombination von technischen und kommerziellen Entscheidungen, die nicht einfach in einer Reihe von Worten erklärt werden könnten. Wenn Sie einen Alias ​​in Ihrer E-Mail-Adresse verwenden, können Sie diesen Teil einfach ablegen, um sich zu registrieren.

Die DBA-Perspektive ist erfrischend, danke! Ich würde jedoch annehmen, dass eine kleine Vorverarbeitung der E-Mail-Adresse zum Entfernen des Plus-Teils diese zusätzliche Abfrage speichern könnte. Dies geht in UX-Grenzen über, ist aber interessant, da ich, wie Sie vorschlagen, meine E-Mail-Adresse ändern sollte, um später ein Pluszeichen ohne negative Konsequenzen zu erhalten. (Ich stimme zu; aber ich bezweifle, dass die meisten Websites dies so implementieren.)
Jep. Es ist eine Menge zusätzlicher Arbeit. Ich persönlich benutze "+", um zu verstehen, wer meine Daten verkauft. Aber um es auf Websites, an denen ich gearbeitet habe, richtig zu handhaben, würde ich ein zusätzliches Feld in der Datenbank benötigen, um "ein kostenloses Konto pro E-Mail-Adresse" zu erzwingen - ich müsste ein Feld mit der vom Benutzer gewählten E-Mail-Adresse aufzeichnen und dann ein Feld, das analysiert wurde, um die Dekoration zu entfernen - und das nicht dekorierte Feld allein auf Einzigartigkeit zu überprüfen, ohne es für einen anderen Zweck zu verwenden. Das ist viel Aufwand für wenig Nutzen für die Website. Einfacher zu sagen "Nein. Keine Probleme mit E-Mail-Addies, innit. Sicherheit, Kumpel, Sicherheit - nicht zu sagen, was?".
@Matt, als [RFC-Standard] (http://tools.ietf.org/html/rfc5322#page-16) hat die Verwendung des Symbols "+" nicht auf Aliase beschränkt. Es gibt keine Möglichkeit für Websitebesitzer, ihren Kuchen zu haben und iss es auch. Benutzer mit ungewöhnlicher E-Mail-Adresse werden verlassen, sobald entschieden wird, Aliase für die Registrierung auszuschließen. Und ich schlage nicht vor, dass Sie Ihren Alias ​​nach der Registrierung wieder hinzufügen können, da ich glaube, dass für E-Mail-Änderungen dieselben Validierungsregeln gelten würden.
"Um zu verhindern, dass Benutzer mehrere Registrierungen mit unterschiedlichen Aliasnamen vornehmen" - Ich würde mir vorstellen, dass Benutzer, die wirklich mehrere kostenlose Angebote erhalten möchten, einfach mehrere Konten erstellen würden. Ich würde mir vorstellen, dass mehr Leute über kostenlose E-Mail-Konten Bescheid wissen als Aliase in Google Mail.
@MaciejPiechotka, ja, du hast recht. Aus diesem Grund werden diese kostenlosen verfügbaren E-Mail-Domains ebenfalls blockiert, wenn die Geschäftsregeln dies vorschreiben. Obwohl es unmöglich ist, alle zu blockieren, wäre eine Liste der 100 besten E-Mail-Domains gut genug, um die meisten Menschen davon abzuhalten, das System zu missbrauchen.
@QuestionOverflow Die Geschäftsregeln schreiben also vor, dass Benutzer, die Google Mail, Yahoo, Hotmail und andere ähnliche Konten verwenden, standardmäßig blockiert werden. Angesichts der Tatsache, dass diese drei Domains über 96% des US-Marktanteils haben (leider konnte ich keine weltweiten Daten finden), klingt es so, als würde der Verlust durch abgeschreckte Kunden um Größenordnungen größer sein als jeder mögliche Verlust durch einige Trittbrettfahrer - es sei denn, es handelt sich um eine sehr spezifische Buschigkeit und Dose leisten Sie es sich beispielsweise, nur Adressen von Universitäten anzunehmen.
@MaciejPiechotka, Wenn ich über eine verfügbare E-Mail-Adresse spreche, beziehe ich mich auf eine, die nur vorübergehend ist und keiner Registrierung bedarf, wie Mailinator- oder Guerilla-Mail. Offensichtlich wird niemand, der bei klarem Verstand ist, Google Mail, Yahoo und Hotmail blockieren. Kein System ist perfekt.
@MaciejPiechotka Der Unterschied besteht darin, dass für den durchschnittlichen Benutzer, der versucht, eine Promotion zu spielen, das Erstellen neuer Konten eine viel höhere Eintrittsbarriere aufweist (mehrere Minuten beim Erstellen des Kontos) als die Verwendung von "+" -basierten Aliasnamen (einfach Formular mit zufälligem Müll nach "+" senden)immer wieder unterschreiben).Bei vielen dieser verfügbaren Dienste (z. B. Google Mail) müssen Sie sich weiterhin mit einer Telefonnummer oder dergleichen "authentifizieren", was die Eintrittsbarriere weiter erhöht
akostadinov
2014-08-13 22:56:38 UTC
view on stackexchange narkive permalink

Der einzige Sicherheitsgrund, an den ich denken kann, ist, dass sie reguläre Ausdrücke verwenden, um E-Mails zu verarbeiten, und dass ihre Software Mist ist, Adressen nicht richtig entgeht und Fehler auftreten. Vielleicht eine Vermutung, aber ich habe Probleme im Zusammenhang mit E-Mails gesehen Adressen mit + und regulären Ausdrücken. In jedem Fall ist die Schlussfolgerung, dass diese Websites Mist sind.

Oh, darüber weiß ich nichts. Ihre Seite eignet sich sehr gut für die Organisation von Meetups und ich habe die, an denen ich teilgenommen habe, genossen. Obwohl das Problem möglicherweise auf eine schlechte UX-Entscheidung zurückzuführen ist, hat dies nur wenig mit der Effektivität des gesamten Dienstes zu tun, wenn nur ein regulärer Ausdruck geändert werden muss.
Wenn Sie ein "+" in Regex möchten, verwenden Sie einfach "\ +". Es ist einfach Regex.
Wenn dies der Fall wäre, würden sie wahrscheinlich auch keine Perioden unterstützen (was sie auch tun).
@ColeJohnson Nein, in einem [grundlegenden regulären Ausdruck] (http://en.wikipedia.org/wiki/Regular_expression#POSIX_basic_and_extended) verwenden Sie "\ +", wenn Sie "+" möchten. Vorsicht vor versehentlicher Verwendung von Fachbegriffen!
@Fuzzy76, Ich habe die meisten Punkte gesehen, die in regulären Ausdrücken verwendet wurden, ohne zu entkommen. Viele Programmierer denken einfach nicht so viel. Aber Punkte unterbrechen nicht die Übereinstimmung gültiger Anwendungsfälle und werden oft lange oder für immer nicht bemerkt. Ich habe auch Punkte in Charakterklassen entkommen sehen, was ein weiteres Problem ist. Ihr verwechselt "was sie können" mit "was sie tun". Das Entkommen einer vom Benutzer angegebenen Zeichenfolge erfordert einige Überlegungen, um ordnungsgemäß zu funktionieren. Das Sperren von Spam mit dem Nichtzulassen von "+" ist ebenso lahm. Wenn es so einfach wäre, Spam zu verhindern, hätte es bereits keinen Spam gegeben.


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...