ログイン URL が次の場合:
http://example.com/login/a1b2c3d5e6
その場合、私はその最後の部分については心配しませんが、最初の部分については心配します - http. ユーザーが安全でない http 経由で URL にアクセスしている場合、推測がどれほど困難であっても、盗聴は常に簡単です。あらゆる種類の認証済み接続に https を使用します。
また、この URL で何が得られるかについても説明していません。他の形式の認証の代わりにではなく、他の形式の認証と一緒に追加の予防措置として使用することを願っています。
そうは言っても、通常のユーザー/パスワードログインフォームがURLで正しいトークンが利用可能な場合にのみ機能するという考えであれば、システムのセキュリティを強化するだけで、決して弱くすることはできないと思います. これは、タマネギの追加の層のように機能する一種のセキュリティ対策です。弱い層であっても、タマネギはそれほど強くなくても強くなります. 他の形式の認証の代わりに使用しないでください。また、失敗したログイン メッセージにあまり役に立たないでください。アプリケーションは、URL が正しくなるまで URL が間違っていると言い、パスワードが間違っているなどと言うべきではありません。認証に失敗した理由を問わず、一般的なエラー メッセージは 1 つしか表示されません。
トークンの長さについては、10 文字が妥当と思われます。本当にランダムであること、またはユーザー名や秘密の値などの一意の値の暗号的に強力なハッシュであることを確認してください. すぐに使用できるソリューションが必要な場合は、HMACを使用できます。HMAC-SHA1 を使用すると、トークンごとに 20 バイトが得られます。これは 40 桁の 16 進数で、最初の 10 桁または 20 桁のみを使用するか、または Base64 や Base32 などの形式としてエンコードすることができます。
このトークンは変更可能である必要があり、忘れた人に思い出させるメカニズムが必要になることに注意してください。
これらすべてを考慮すれば、認証の追加メカニズムとして使用しても害はないと思います。