Unser System verwendet die kennwortlose Anmeldung, um dem Benutzer einen Anmeldecode + Link per E-Mail zu senden, über den er sich anmelden kann.
Wir haben festgestellt, dass einer unserer Kunden einen Mail-Scanner hat, der diesen Links tatsächlich folgt. Wir machen die verwendeten Anmeldecodes ungültig, um die Angriffsfläche für einen Angreifer zu verringern. Aber jetzt haben solche E-Mails keinen gültigen Anmeldelink mehr.
Hierfür scheint es zwei Lösungen zu geben:
- Geben Sie keinen Anmeldelink an, sondern nur einen Code im message.
- Lassen Sie den Anmeldecode nach der ersten Verwendung für den X-Zeitraum gültig sein (sagen wir, er wird nach 15 Minuten ungültig).
Option 1 scheint von unserer UX nicht akzeptabel zu sein Team.
Option zwei scheint viel weniger sicher zu sein:
- Bietet eine größere Angriffsfläche, da mehr Codes in unserer Datenbank aktiv sind.
- Social Das Engineering wird einfacher: Ein Benutzer kann innerhalb des gültigen Zeitraums (obwohl der Benutzer den Code bereits verwendet hat) ein Bild von der E-Mail und dem Typ des Codes machen und sich mit diesem Code anmelden.
Würde Gibt es eine andere oder bessere Lösung, die sowohl UX-freundlich als auch (zumindest als) sicher ist?