私の Web アプリは、外部ソースを介して電子メール アドレスと一部のユーザー情報を受け取り、その情報を検証してから、そのユーザーへのリンクを含む電子メールを送信する必要があります。リンクの価値は小さいため、安全である必要があります。
長さ 200 の 64 文字の文字列を使用して、Web サイトに対する攻撃から保護するだけで十分でしょうか?
擬似コード:
id = '';
length = 200;
characters = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_-';
for (i = 0; i < length; i++) {
id += characters[random(characters.length)];
}
link = WEB_URL + "?" + id;
// create this url with valuable information on the server
// email link with id appended in URL fragment to user
sha512
競合を解決するために、URL のハッシュを検索用の電子メール アドレスと共にデータベースに格納するために使用する予定です。塩を使うのはやり過ぎだと思います。いずれにせよ、ID をブルート フォースするのは簡単ではありません。
この方法を使用すると、セキュリティ上の問題が発生する可能性はありますか? ユーザーがログイン画面や Cookie に煩わされるのを避けたい。