1

この質問はおそらく以前に尋ねられたことがありますが、答えを見つけるのに十分な検索を正しく表現できないようです.

通常、インターネット上のフォーラムにアクセスするためにサインアップすると、認証メールが送信されます。リンクをクリックすると、認証を実行するページに移動できます。

私が望むのは、既に作成されたユーザー (ログインしていません) にメールを送信し、メール内のリンクをクリックして提案を受け入れさせることです。もちろん、リンクはデータベース操作を実行し、何らかの結果を表示するページを指しています。

これを実装するには、どの手法やルートを使用する必要がありますか? これはセキュリティ関連なので、何に注意すればよいですか?

敬具、キャスパー

4

1 に答える 1

0

電子メールを送信するときに、大きなランダムな文字列を生成し、ユーザー ID とリンクが何をするかを示すいくつかの指示と共にテーブルに保存します。

次に、 へのリンクを記載したメールを送信しますDoSomething.aspx?id=long_string_here

DoSomething.aspx長い文字列を検索し、ユーザーに何をするかの確認とそれを行うためのボタンを提示するように記述します。ログインは不要です。必要に応じて、ユーザーをログインしたままにすることもできます。

アクションが完了した後、または X 日ごとに、テーブルから文字列を削除します。

懸念:

  1. 悪意のある人がランダムな文字列であなたのページにアクセスしようとするかもしれません。文字列が十分に長く、十分にランダムである場合、これは問題にはなりませんが、ページへのアクセスを抑制したり、特定の期間に IP アドレスからの X を超えるリクエストを防止したりすることができます。
  2. 攻撃的なスパム チェッカーは、電子メールの本文からリンクをたどる場合があります。ページにアクセスするだけで操作が行われないようにしてください。ユーザーはボタンをクリックするか、POST を発生させる必要があります。
于 2009-09-15T16:52:56.200 に答える