2017-12-27 14 views
0

私はjsonwebtokenを私のノードjsサーバーに、jsonwebtokenにはユーザーの役割を保存しています。jsonwebtokenのデータは書き換え不可能です

私は彼が要求をするたびに、必要な役割がトークンに与えられているかどうかをチェックするだけです。しかし、人々はこの役割を変えることができますか? 私は誰もがそれを見ることができると知っているが、誰も私の秘密なしにそれを変更することはできないと思う?

もちろん、私はいつもjsonwebtokenをチェックして正しく署名されています。 この方法はよかったと思いますか? 申し訳ありませんが、私の主な言語ではありません。

答えて

0

jwtは、クライアント側のCookieまたはLocalStorageに保存されていると思います。
これは、ユーザーがCookieを削除または変更できますが、ユーザーは秘密情報なしでは読み取ることができません。

トークンを更新しようとすると、おそらくサーバー側から破損して読み取れなくなる可能性があります。

トークンが破損している場合は、ユーザーをログアウトしてログインページにリダイレクトすることをお勧めします。

+0

も私はCSRF攻撃を防ぐために、あなたはCSRFトークンを使用することをお勧めしますが、クッキーハイジャック

を防ぐためにHTTP-のみであなたのクッキーを入れてくださいIAMのは確認してください私のトークンを読むことができます(https://jwt.io/ "debugger"を見てください)。しかし、トークンから一部のデータを直接変更すると無効な署名として書き込まれます。しかし、署名を無効にすることなくそれを行う方法はありますか?私は信じたくないが、確信が持てない – Lowteast

1

jwtデータを変更して別の署名でハッシュすると、サーバーはその偽のトークンを認識します。

また、httpsを使用して、あなたのトークンがスニッフィングできないようにしてください。

あなたはクッキーにトークンを保存するならば、彼

関連する問題