単なる提案:クライアント側のさまざまなJWTストレージメソッド(cookie / localStorage)(XSS、CSRFなど)のセキュリティ上の懸念に関する情報を追加するのはクールです。
@sarneehこの問題を開いて
プルリクエストを作成する時間があれば、ぜひ行ってください。 (_このリポジトリへの書き込みアクセス権があります_)
JWTに適用されるセキュリティ上の懸念は、他のトークンスキームの場合と同じです。
悪意のあるユーザーがドメインに対してXSS攻撃を実行できる場合、JWTを取得し、それを使用して、クライアントへの保存方法に関係なく、ユーザーになりすますことができます。
悪意のあるJSは、CookieとlocalStorageを同じように簡単に読み取ってリークする可能性があります。
JWTを使用しているユーザーには、OWASP攻撃から保護せず、署名されたクレーム/データを送信するための「便利な」方法にすぎないことをアドバイスする必要があります。 📝
@nelsonic
JWTに適用されるセキュリティ上の懸念は、他のトークンスキームの場合と同じです。
悪意のあるユーザーがドメインに対してXSS攻撃を実行できる場合、JWTを取得し、それを使用して、クライアントへの保存方法に関係なく、ユーザーになりすますことができます。
悪意のあるJSは、CookieとlocalStorageを同じように簡単に読み取ってリークする可能性があります。
私は部分的に同意します。 httpOnly
やsecure
cookieのようなものがあり、攻撃者がJWTを取得するのを防ぎます。 しかし、XSS攻撃にさらされている場合、誰かがユーザーに代わって何かを行うことができるため、これは何からも保護されないことに完全に同意します(トークンを盗むのではなく、悪意のあるスクリプトを挿入します)。
したがって、最終的には、 localStorage
とcookie
どちらを使用するかは問題ではないと思います。OWASP攻撃を受け入れる場合は、失敗します。 しかし、それらから保護されている場合は、両方の方法で安全である必要があります。
PRを準備したいのですが、今は時間に間に合わず、1〜2か月で無料になります。 誰かが私を追い抜かないなら、私はいくつかのPRを準備します😄
@sarneehこの問題を開いて
プルリクエストを作成する時間があれば、ぜひ行ってください。 (_このリポジトリへの書き込みアクセス権があります_)JWTに適用されるセキュリティ上の懸念は、他のトークンスキームの場合と同じです。
悪意のあるユーザーがドメインに対してXSS攻撃を実行できる場合、JWTを取得し、それを使用して、クライアントへの保存方法に関係なく、ユーザーになりすますことができます。
悪意のあるJSは、CookieとlocalStorageを同じように簡単に読み取ってリークする可能性があります。JWTを使用しているユーザーには、OWASP攻撃から保護せず、署名されたクレーム/データを送信するための「便利な」方法にすぎないことをアドバイスする必要があります。
上で述べたように、クッキーはhttpOnlyオプションを持つことができます。
この記事によると、httponlycookieの代わりにlocalstorageを使用することは本当に安全ではありません
前のセクションで機密情報をローカルストレージに保存してはならないことを明確にしたように感じますが、JSON Web Token(JWT)を具体的に呼び出す必要があると感じています。
今日私が目にする最大のセキュリティ違反者は、JWT(セッションデータ)をローカルストレージに保存している私たちです。 多くの人は、JWTが本質的にユーザー名/パスワードと同じものであることを認識していません。
攻撃者があなたのJWTのコピーを入手できる場合、攻撃者はあなたに代わってWebサイトにリクエストを送信する可能性があり、あなたは決して知りません。 JWTをクレジットカード番号やパスワードと同じように扱います。ローカルストレージに保存しないでください。
最も参考になるコメント
@nelsonic
私は部分的に同意します。
httpOnly
やsecure
cookieのようなものがあり、攻撃者がJWTを取得するのを防ぎます。 しかし、XSS攻撃にさらされている場合、誰かがユーザーに代わって何かを行うことができるため、これは何からも保護されないことに完全に同意します(トークンを盗むのではなく、悪意のあるスクリプトを挿入します)。したがって、最終的には、
localStorage
とcookie
どちらを使用するかは問題ではないと思います。OWASP攻撃を受け入れる場合は、失敗します。 しかし、それらから保護されている場合は、両方の方法で安全である必要があります。PRを準備したいのですが、今は時間に間に合わず、1〜2か月で無料になります。 誰かが私を追い抜かないなら、私はいくつかのPRを準備します😄