0

私の 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 に煩わされるのを避けたい。

4

1 に答える 1

1

電子メールが傍受されない限り、攻撃を防ぐためにできることはすべて (実質的に) 行っていると思います。しかし、脆弱なリンクは、電子メールが傍受される可能性です。受信者のメール サーバーが TLS をサポートしている場合は、メール サーバーが TLS (トランスポート レイヤー セキュリティ) 経由で受信者のメール サーバーに接続していることを確認してください。それ以外の場合、メッセージは暗号化されずに送信されます。これらをリモート メール サーバー経由で送信する場合は、同じ理由で、アプリが SSL または TLS 経由でもそのメール サーバーに接続することを確認することもできます。

于 2013-07-12T16:24:26.647 に答える