2016-07-19 2 views
0

JWTトークンをHTTPパケットで処理するための標準的で安全な方法は何ですか?HTTPパケット(Cookie、ヘッダー、またはJSON)にJWTトークンを含める正しい方法

JWTをクッキーに設定しないでください。ブラウザは自動的にセッションをハイジャックするため、プレーンIDのCookieよりもJWTトークンに付加価値がないためです。

したがって、JWTトークンをヘッダーまたはJSON属性として含めるか、これは実際の問題ですか?

答えて

0

CookieとAuthorizationヘッダーの両方に長所と短所があります。

クッキーを使用すると、javascriptが値にアクセスするのを防ぐことができますが、認証ヘッダーでのみ許可すると、追加のCSRF保護は必要ありません。

クッキーを使用すると、<imgタグなどのJavaScript以外のリクエストを簡単に保護することもできます。

正解はなく、標準はありません。あなたはあなたに何が重要かを理解する必要があります。

+0

あなたは何を意味しますかJavaScriptが値にアクセスするのを妨げ、タグから保護しますか?私は、クッキーがjavascriptやCSRFベースの攻撃に対して脆弱だと考えました。認証ヘッダーはこの前提を改ざんしていますか?また、ブラウザが自動的にリクエストするためにこのクッキーを添付するので、クッキーにトークンを格納することにより、クッキー内の単純なセッションIDに追加のセキュリティがどのように提供されるのか分かりません。トークンがTLSで暗号化されたサーバー応答のヘッダー/本文にあり、セッションの乗り越えを回避するために、プログラムごとに要求ごとにトークンを追加する必要があります。 –

+1

@TuomasToivonen私が '値にアクセスすることからjavascriptを妨げるクッキー'とは何を意味するのかは、 'HttpOnly'のクッキーです。調べる。 「」タグについては、基本的には、自動的に認可ヘッダーをそれらに追加することはできません。 Cookieは自動的にそれらの要求にも添付されますが、Authorizationヘッダーには含まれません。また、Cookie _do_は、追加の保護がない場合はCSRFリクエストを許可します。 – Evert

+0

したがって、クッキー+ csrfトークンの全体的なアプローチは、csrfとxssから保護するので、より安全です。 –

-1
  1. 使用HTTPS
  2. セットができるだけ小さくトークン(5分、30分、また数ヶ月もない年)の時に有効期限が切れます。
  3. 新しいトークンを取得し、古いトークンを更新(およびユーザーは間違いなく、ログインしている場合)たびにトークンリフレッシュ更新するリフレッシュトークンを使用する
  4. パスワード、クレジットカード番号やトークンで機密情報を保管しないでください(私はshureだ、あなたはそれを知っている:))
  5. 特権をチェックする(または例えばipをチェックする)ために必要なすべての情報を格納する。 REST APIと水平スケーリングに適しています。そして、あなたはもう何もクッキーを必要としない))
  6. 私は、ヘッダー経由でトークンを送信する(例えば、カール-Xは-H "X-アクセストークンを:..." GETはlocalhost:3000)
関連する問題