0

私はデータベースを利用した Web アプリを持っています。この機能が必要です:

行のあるテーブルがあり、URL を生成する必要があります。ユーザーが URL (電子メールに含まれているなど) をクリックすると、特定の ID の列の値が更新されます。

http://server.com/update?id=30303030&newvalue= 'dxckdk'; などのリンクを作成できることはわかっています。

ただし、誰かが生成された ID でリクエストを送信しようとする可能性があるため、これはあまり安全ではありません。

これを確保する最善の方法は何でしょうか?

お世話になりました!

J

4

2 に答える 2

0

クエリ文字列値で暗号化を試すことができます。このようにして、誰もデータを変更できず、クエリ文字列で送信しているものを誰も取得できません。このトリックには、暗号化/復号化のオーバーヘッドの欠点がありますが、安全です。

連鎖可能であり、暗号化されたクエリ文字列と通常のクエリ文字列の両方をサポートしているため、この方法が気に入っています http://weblogs.asp.net/bradvincent/archive/2008/10/27/helper-class-querystring-builder-chainable.aspx

http://www.codeproject.com/Articles/25719/Query-string-encryption-for-ASP-NET

于 2013-04-22T15:27:37.797 に答える
0

ランダムに生成された UUID (トークン)を使用する

  1. 予測可能なシーケンスがないことをほぼ保証します

  2. リプレイできません。つまり、トークンは 1 回限り使用できます。http://server.com/update?token=mxyzptlkが要求されると、そのキー値は再利用できません。

  3. 決してリバース エンジニアリングを行うことはできません。ソース マテリアルまたは暗号化キーが危険にさらされると危険にさらされる可能性がある暗号化された値とは異なります。UUID は予測できません。知る限り、それらはリバース エンジニアリングの影響も受けません。

  4. それらは生成するのが比較的簡単で、処理のオーバーヘッドが低いです(とにかくプラットフォームによって異なります)

于 2013-04-23T04:04:19.393 に答える