1

これが私のシナリオです...

  1. ユーザーのクライアント アプリケーションは、Web サービスにアクセスを要求します。

  2. Web サービスは、X 秒/分のみ有効な「キー」で応答します (時間は可変であるか、少なくとも Web サービスで定義可能です)。

  3. ユーザーのクライアント アプリケーションは、キーをすぐに使用してさらに要求を行います。

  4. Web サービスは、キーがまだ有効であることを確認し、有効な場合はリクエストを続行し、そうでない場合はそれに応じて応答します。

キーを実際にデータベースに保存せずにこれを行う必要があるため、キーの生成に使用されるハッシュ(ソルトを使用)は何らかの形で時間に基づいている必要があると推測しています。

私が本当に求めているのは、これを行うための最良のアプローチは何かだと思います。

言語: VB.Net

4

3 に答える 3

1

キーをどこかに保存することはできません。ハッシュの性質上、生成元の情報を取得することはできません。情報を取り戻したい場合は、代わりに暗号化アルゴリズムを使用してください。

于 2011-04-03T00:45:30.067 に答える
0

最終的には次のようになりました....

アプリケーションに認識されているソルト ユーザーのユーザー名 現在の日付/時刻 + 5 秒

上記を特定の順序で文字列として結合し、MD5 ハッシュします。

クエリ文字列パラメーターとしてハッシュを使用してヒットできる特別な URL があります。

このハッシュを、リクエスト時に生成された 5 つのハッシュと比較します (現在の秒に 1 つ、前の 4 秒ごとに 1 つ)。QS パラメータのハッシュが、生成されたこれら 5 つのハッシュのいずれかに一致する場合、リクエストを受け入れて関連するアクションを実行します。

API には、ハッシュが既に適用された URL を返すメソッドがあります。API クライアントは、指定された URL にリクエストをすぐに送信できます。URL が取得されてから 5 秒以上経過したリクエストはすべて拒否されます。

したがって、生成された時点から 5 秒間のみ有効なキーがあります。

これにより、API クライアントからサイトに「自動ログイン」する機能をユーザーに提供できます。クライアントはログイン URL (ハッシュ付き) を要求し、すぐにユーザーの Web ブラウザーをその URL に誘導します。URL はリクエストを処理し、ハッシュをチェックし、有効な場合はログイン Cookie を設定して管理ページにリダイレクトします。

シンプルで効果的で、すべての API リクエストが SSL 経由であるため、安全です。

于 2012-02-11T10:52:31.727 に答える
0

そのためにサードパーティのツールを使用しました。クリプキーといいます。非常に構成可能ですが、安くはありません。

于 2011-04-03T00:46:28.200 に答える