2013-07-18 3 views
5

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

これは1ページのアプリケーションです。すべてはSSLセキュリティ保護である

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

:よう

トークンが見えます。 トークンは、ユーザーのログオン時にサーバー上に作成されます。

これは、クッキーを交換するための良い方法でしょうか、または欠陥を見ますか?

+0

GETリクエストであっても、単一ページアプリケーションでブラウザの履歴が問題になるのはなぜですか? AJAXリクエストはブラウザの履歴には載っていません。しかし、トークンを "Authorization"ヘッダーに入れておくと、GETを使うとアクセスログに誤って表示されることはありません。 –

答えて

1

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

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

JWTを使用しても、実際にセッションの実装を使用してセッションクッキーを使用できないのはなぜですか?この種のものは、まさに彼らのために作られたものです。