DB に保存されているシークレットのないユーザー アカウントのアクティベーション電子メールは、十分に安全ですか?
質問
ニュースレター アプリを作成したいのですが、ボットがアドレスを入力した場合にスパムが送信されないように、ユーザーは当然ニュースレターに登録したことを確認する必要があります。
私のアイデアは、URL にシークレット (電子メール アドレスのハッシュと秘密のサイトキー) を含むリンクを含む電子メールをユーザーに送信するというものでした。
私の質問は次のとおりです。誰かがいくつかのアカウントを登録し、自分のアドレスを含むシークレットのハッシュを受け取ることで、サイトキーを推測し、必要なすべての電子メール アドレスを登録できるでしょうか?
それをすることで得られるものは何もありませんが、それが非常に簡単であれば、誰かがそれを行う可能性があり、私はブラックリストに登録されます。
アクティブ化されていないユーザー アカウントを保存しない理由は、単純に、x 日ごとに DB からユーザー アカウントを削除したくないからです。
解決
あなたが確保した場合、
あなたはその後、完全にランダムな塩/ sitekeyで SHA1 のようなものを使用しますそれは辞書攻撃でsitekeyをリバースエンジニアリングしようとする無駄になります。
誰かがは任意のアドレスを登録するために、独自のハッシュを合成したいなかった場合は、、自分の時間をより有効に使用することは、ソースコードを読むために、サーバーへのアクセスを得るために、次のようになります。)
他のヒント
ランダムなシークレットを生成してデータベースに保存するのが最善だと思います。そうすれば、推測できるものは何もありません。(少なくとも追加の許可を与えるものは何もありません) どれでも Eメール)。
所属していません StackOverflow