侵害されることはないが、認証にも使用できるトークンを作成する方法があります。
結合されるトークンを作成します。
base64(ユーザー名+有効期限+クライアントのその他の値+ 3desエンコード(usename、expiration、source ip、ブラウザーID、クライアントのその他の値))
クライアントは、トークンを使用してリクエストを認証できます。たとえば、JSON Web Token(RFC 7515)を使用できます。
サーバー側では、トークンとして、3desエンコーディングに使用されるキーを時間とともにローテーションできます。すべてのリクエストには認証用のトークンが含まれ、すべてのレスポンスには有効期限が切れる前に同じトークンまたは新しいトークンが含まれます。
その場合、トークンにはユーザー名が含まれているため、リクエスト認証では、3desエンコードされた部分が有効かどうかを確認するだけで済みます(と同じ、リクエストIPのソースは同じです。この場合、誰かがトークンを盗んだ場合、トークンの使いやすさはさらに高くなりますセッションIDとして制限されます。ブラウザなど、トークンに他の識別子を作成できます。攻撃者はより多くのものを偽造する必要があるため、要求を偽造するのは困難です。トークン。(実際のところ、完全なセキュリティはありません。クラックを困難にするだけです)
このソリューションの長所は次のとおりです。
- すべての部分が標準ですが、全体が一緒であるわけではなく、攻撃者は攻撃できるように実装の詳細を知っている必要があります。
- クライアント側はトークンの一部を使用してトークンからの情報を表示できますが、暗号化されていない部分はすべて暗号化された部分に含まれているため、トークン自体は保護されています。サーバー側でトークンを無効にしないと変更できないため、簡単に検出できます。攻撃。
- クラスタリングのためのセッションレプリケーション/スティッキーセッションは必要ありません。ノード間で複製するのに十分な3desキー-したがって、ステートレスバックエンド戦略に適しています。
短所は