Homepage selbermachen 7.849 Themen, 35.585 Beiträge

Bestätigungslinks

chillerpat321 / 4 Antworten / Flachansicht Nickles

Hallo zusammen,

gibt es eine möglichkeit einen link zu erstellen wo man per email anklickt und ich dann eine bestätigungsmail bekomme das dieser link angeklickt wurde...

z.B. http://domain.de/email-bestaetigung.php?e-mail@domain.de

Quasi das die Seite email-bestaetigung.php mir eine bestätigung schickt das der link angeklickt wurde... und das ich nicht jedes mal wenn eine andere emailadresse bestätigt werden muss ich einen neuen link erstellen muss bzw. Seite...

Hoffe Ihr könnt mir weiterhelfen....

Gruß Pat

bei Antwort benachrichtigen
xafford chillerpat321 „Bestätigungslinks“
Optionen

Im Prinzip einfach - aber im Detail ziemlich knifflig. Klingt jetzt blöd, ist aber so aus einem einfachen Grund: Im Internet wird letztendlich alles missbraucht, was sich missbrauchen lässt. Klären wir also mal die Anforderungen:

  • Du willst eine Mail über das Ereignis, dass ein Link geklickt wurde.

So weit, so einfach. Jetzt betrachten wir mal die Seiten-Effekte:

  • Du willst bestimmt nur einmal eine Mail, wenn der Link geklickt wurde, nicht jedes Mal.
  • Du willst bestimmt auch nur dann eine Mail, wenn ein korrekter Link geklickt wurde (also für eine vorher definierte Email-Adresse).
  • Du willst bestimmt auch nicht, dass jemand einen Link bauen kann um eine bestimme Email-Adresse als Benachrichtigung zu nutzen auch wenn die Adresse korrekt ist.

Um das Umzusetzen gibt es zum einen Minimal-Anforderungen, die getroffen werden müssen, zum anderen gibt es verschiedene Möglichkeiten dies umzusetzen. Die Minimalanforderungen sind folgende:

  • Du darfst die Email-Adresse nicht im Klartext in der URL übermitteln (allein aus Datenschutz-Gründen).
  • Du musst überwachen, welche Adressen schon bestätigt wurden und dafür keine Mail mehr versenden.
  • Du musst dafür sorgen, dass die Mailadresse nur eine Benachrichtigung auslöst, wenn sie das auch soll.

Wie Du das jetzt korrekt umsetzt hängt unter anderem davon ab, woher die Adressen kommen und wozu das Ganze gut sein soll. Aber unabhängig davon gibt es zwei grundlegende Möglichkeiten dies praktisch zu lösen was die Links angeht:

  • Zum einen über eine Liste mit temporären Schlüsseln.
  • Zum Anderen über eine kryptographische Funktion um die Adressen zu verschlüsseln.

Nehmen wir Fall 1: Du hast eine Mail-Adresse, für die eine Benachrichtigung erstellt werden soll. Du generierst also einen zufälligen Schlüssel und den speicherst Du auf dem Server zusammen mit der Adresse. Den Schlüssel versendest Du als Parameter für den Link. Wird der Link dann angeklickt schaust Du auf dem Server, welche Mail-Adresse dazu gehört, ob die Benachrichtigung schon erledigt ist, versendest die Benachrichtigung falls nicht und markierst auf dem Server, dass die Benachrichtgung verschickt wurde.

Fall 2 ist ähnlich, nur dass der Parameter nicht zufällig ist, sondern dass Du eine kryptographische Funktion nutzt um die Mail-Adresse zu verschlüsseln als Parameter. Dann brauchst Du auf dem Server nur den Parameter zu entschlüsseln und weißt, um welche Adresse es sich nach dem Klick handelt - das Merken welche Benachrichtigung schon verschickt wurde musst Du trotzdem noch erledigen.

Persönlich halte ich Lösung 1 für wesentlich besser, da es Dir viele Probleme erspart, auch wenn die kryptographische Funktion geknackt wird und der Aufwand nicht wirklich größer ist.

PS: Falls Du praktische Lösungen wolltest, dann musst Du mehr Informationen dazu liefern, wozu dies gut ist und woher die Daten kommen und wo sie hin gehen.

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen