5

Cookie を使用する代わりに、リクエストごとに送信される JWT トークンを使用しています。すべてのリクエストは POST リクエストであるため、トークンはブラウザの履歴に保存されません。

シングルページアプリです。

トークンは次のようになります。

{
    userId: 12345678,
    expires: <UNIX timestamp>,
    otherInfo: <something>
}

すべてSSLで保護されています。ユーザーがログオンすると、トークンがサーバー上に作成されます。

これは Cookie を置き換える良い方法ですか、それとも何か欠陥がありますか?

4

1 に答える 1

1

いいえ、これは良い解決策ではありません。httpOnlyクロス リクエストの永続性のためにCookie を (フラグ付きで) 使用することはオプションではありません。これは、ページ上の JavaScript コードが直接アクセスできないように、セッション資格情報を安全に保存する唯一の方法です。

これは、例えばを防ぐために不可欠です。スクリプトが資格情報にアクセスできないことを保証することにより、XSS 攻撃でセッションを盗みますが、サーバーへの要求では引き続き使用できます。

JWT を使用しても、実際には問題が解決されないようです。既存のセッション実装を使用してセッション Cookie を使用できないのはなぜですか? この種のものは、まさに彼らが作られているものです。

于 2016-09-14T21:07:37.677 に答える