Aus dem gleichen Grund, dass Banken keine Links wie
haben %Vor%es kann leicht abgefangen und interpretiert werden.
So ziemlich jeder Newsletter, den ich bekomme, hat einen Disclaimer am Ende, etwa so:
Diese E-Mail wurde an [email protected] gesendet. Klicken Sie zum Abbestellen auf diesen Link: xxxx
Ich finde die explizite Auflistung meiner eigenen E-Mail-Adresse im Newsletter hilfreich. Ob die E-Mail-Adresse im Abmelde-Link ist oder nicht, scheint mir irrelevant.
Angenommen, Sie veröffentlichen die E-Mail-Adresse nicht im tatsächlichen Text der Nachricht oder im Link zum Abbestellen. Die E-Mail-Adresse befindet sich immer noch im Header der E-Mail-Nachricht. Als Ergebnis sehe ich nicht wirklich die Notwendigkeit oder den Grund dafür, es innerhalb des Abmeldelinks zu verdunkeln.
Warum nicht? Fügen Sie es nicht ein, weil es nicht benötigt wird . Wofür werden diese Daten verwendet? Schlagen Sie vor, dass wir nichts enthalten, was wir nicht wirklich in der Querystring benötigen.
Das einzige, was tatsächlich benötigt wird, ist eine eindeutige Kennung. Es sieht so aus, als hätten Sie bereits eine eindeutige Kennung in der Querystring: %code% .
Ein potenzielles Problem: Was hält mich davon ab, automatisch Abmeldungs-URLs zu erstellen und %code% von 1 bis 10 Millionen zu treffen?
Vorschlag: Erstellen Sie eine Benutzeranleitung für jeden Benutzer in Ihrer Tabelle. Verwenden Sie das als Ihr Abmeldungs-Token. Es ist nicht zu erraten oder anfällig für automatisierte Angriffe.
%Vor%Weil Sie dann jemand anderen abmelden können. Idealerweise möchten Sie nur einen Schlüssel verwenden:
%Vor%Ich sollte nicht in der Lage sein, Ids und E-Mails zu erraten und etwas Aktion für jemand anderen auftreten zu lassen.
Ich stimme zu, dass Sie die E-Mail-Adresse nicht benötigen, wenn Sie eine andere Methode zur eindeutigen Identifizierung des Benutzers haben. Der einzige Grund könnte darin bestehen, dem Benutzer die E-Mail-Adresse anzugeben, mit der er / sie angemeldet ist, die aber auch veraltet ist, da er offensichtlich die E-Mail erhält.
Ich vermute, dass uid eine Benutzer-ID ist. Wenn Sie die Benutzer-ID kennen, dann sollten Sie in der Lage sein, die E-Mail-Adresse von diesem Recht zu bestimmen? Scheint so, als hätte die Email in der URL nichts. Ich schätze, wenn Sie keine persönlichen Informationen hinzufügen müssen, dann tun Sie es am besten nicht.
Ich könnte Ihnen eine sehr knifflige Antwort geben, aber Sie werden feststellen, dass die vollständige E-Mail-Adresse keine schlechte Idee ist.
Eine URL mit einer E-Mail-Adresse könnte von bösartigen Proxies (z. B. von öffentlichen Orten) verwendet werden, um Adressen zu speichern und Spam zu senden. Aber wenn ich vermute, dass der öffentliche Ort etwas Böswilliges hat, installieren Sie besser einen Keylogger auf dem öffentlichen Computer und machen Sie noch schlimmer.
Ein weiterer Punkt könnte sein: Wenn Sie E-Mails an wertvolle Kunden senden, kann ein Angreifer E-Mail-Adressen fälschen und sie abbestellen, wodurch sich Ihre Kommunikationsstärke verringert. Dazu können Sie Ihrer URL eine Krypto-Prüfsumme hinzufügen (benötigen Sie kein CAPTCHA, die Leute mögen es nicht, wenn Sie sich abmelden), aber dann die gesamte Mail-Adresse, die Sie lösen könnten, verschlüsseln (oder nur auf eine nicht offensichtliche Weise verschlüsseln) das Problem, ohne zwei Parameter zu verwenden.
Da Sie %code% nicht verwenden, können Abfrageparameter aktiviert werden. Dies ist ein ernstes Problem für mobile Benutzer und Benutzer von Laptops in Orten mit kostenlosem Wi-Fi wie Coffeeshops.
Und da uid bereits auf die E-Mail-Adresse verweist, müssen Sie Snoofern keine Informationen wie eine E-Mail-Adresse zur Verfügung stellen.
Sie müssen sicherstellen, dass die Abmeldung nicht erfolgt, sobald sie auf einen Link klicken. Das ist eine GET-URL, die idempotent sein sollte (siehe Abschnitt 9.1 ), was bedeutet, dass sie keine Autorität haben sollte um die zugrunde liegende Datenbank zu ändern.
Und ich sollte nicht befugt sein, Sie abzubestellen, nur indem ich Ihre E-Mail-Adresse kenne, was ich tun könnte, indem ich eine URL fälsche, wenn uid entweder raten oder nicht benötigt wird.
Geben Sie mir einige Gründe, warum Sie E-Mail-Adressen NICHT in einen einfachen Text für den Abmelde-Link aufnehmen sollten, der in unseren Newslettern verschickt wird.
Im Moment ist es:
%Vor%Ich dränge auf:
%Vor%Ich mag die Idee, E-Mail-Adressen in einfachen Text zu schreiben, nicht wirklich, aber ich muss meinen Vorgesetzten von möglichen Bedrohungen überzeugen.
Update: Während alle Antworten suggerierten, wie ich es sichern sollte und NICHT zu begründen, warum ich es sichern sollte, finde ich die Antwort von do-ob am geeignetsten.