Was ist der beste Ansatz, um ein passwortloses Anmeldesystem zu erstellen?
Ich denke, eine Art zufällig generierten 16-Zeichen-Token zu verwenden, zum Beispiel:
mysite / members / index.php? token = 2j0n1qyjgcxyu3oy
Ich entwickle ein Angebotssystem und die Idee ist, dass die Lieferanten sich nicht registrieren müssen, stattdessen erstelle ich ihr Konto für sie und alles, was sie tun müssen, ist den Link in ihrer E-Mail zu klicken, um ein Angebot abzugeben . Dies ermutigt Lieferanten, ein Angebot einzureichen, da sie wissen, dass sie sich nicht registrieren oder einloggen müssen.
Es kann nicht viel schaden, wenn jemand das Token erraten könnte, aber ich möchte trotzdem das System so sicher wie möglich machen, ohne ein Passwort zu benötigen.
Ein Token wäre in Ordnung, ich würde dafür einen MD5- oder SHA1-Hash verwenden.
Aber Sie sind sich dessen bewusst, was Sie zu sein scheinen, das kann von Paket-Sniffern, besonders per E-Mail, geschnüffelt werden, also wissen Sie das einfach. Aber wenn das kein Problem ist, sehe ich kein Problem mit einem Token für einen Lieferanten. Wenn es geschnüffelt oder missbraucht wird, generiere einfach ein neues Token für sie neu.
Ich hoffe, das hilft.
Das ist ein ziemlich gewöhnlicher Ansatz. Der Trick besteht darin, sicherzustellen, dass das Token eindeutig ist. Ich habe in der Vergangenheit einen GUID-Wert verwendet.
Alles läuft darauf hinaus, was das Risiko gegen die Belohnung ist.
Was ist das Risiko, dass jemand anderes diesen Token für den Zugriff auf Ihr System verwenden könnte? Da es per Klartext-E-Mail versandt wird, ist das Risiko wahrscheinlich moderat. (Ein Angreifer müsste in ihrem Netzwerk oder zwischen Ihnen und ihrem E-Mail-Host hören. Immer noch nicht einfach).
Was ist die Belohnung? Der Angreifer könnte ein Angebot im Namen des Unternehmens einreichen. Wie schlimm ist das? Das liegt an dir.
Ein weiteres Risiko, das ich sehen könnte, ist, wenn ein Unternehmen ein Angebot einreicht und später entscheidet, dass es es nicht respektieren will. Sie könnten einfach sagen, dass sie es nicht eingereicht haben. Jemand anderes muss das in ihrem Namen getan haben. Auch hier ist die Wahrscheinlichkeit wahrscheinlich nicht sehr hoch und könnte auf andere Weise behandelt werden.
Nun, wäre dein Token nicht ein bisschen wie ein Passwort? Sie können sie auch an eine spezielle Site umleiten, wo sie auf eine in der Mail spezifizierte Schaltfläche klicken müssen, um ihre Identität zu überprüfen (oder sie eine PIN von der Mail eingeben zu lassen), so dass Sie sicher sein können, nicht alle kritischen Daten zu senden GET aber per POST (wichtig an einem öffentlichen Ort)
Ich hoffe, ich könnte helfen
Wenn sie eine tägliche E-Mail erhalten, können Sie für jede Verbindung eine separate eindeutige ID generieren. Oder verfallen sie nach einer bestimmten Zeit und geben sie alle x Tage ein Update per E-Mail.
Wie groß ist es, wenn jemand eine ID errät oder jemanden bekommt?
Auch warum nur 16 Zeichen? Sie müssen es nicht tippen, also warum nicht länger machen?
Pseudocode
%Vor%Würde ein Token mit 64 Zeichen erstellen.
Tags und Links php