0

暗黙的なフローを使用してユーザーを承認する React アプリがあります。

フローは次のようになります。 1. sessionStorage にアクセス トークンまたはユーザー情報が保存されていない場合、ユーザーはログイン ページにリダイレクトされます。2. ユーザーがログインすると、React アプリのホームページにリダイレクトされます。2.1. ホームページにリダイレクトする場合、リダイレクト URL には、url パラメータの一部としてすでに access_token と id_token が含まれています。3. React アプリはアクセス トークンを保存し、id_token をデコードしてユーザーに関する情報を取得します。

問題は、誰かが 2.1 でリダイレクト URL を盗んだ場合です。ブラウザに貼り付けて、基本的にこのログインを再生できます。

解決策の 1 つはナンスを実装することでした。

https://auth0.com/docs/api-auth/tutorials/nonce

上記の記事によると、nonce は localStorage に格納する必要があり、id_token を nonce と共に取得したら、localStorage の元の nonce で検証する必要があります。しかし、攻撃者は次のことを行うことができます: 1. この id_token を取得します。2. オンライン ツールを使用してデコードします。3. どんなノンスが入っていたのかを確認します。4. Chrome Dev Tool を使用して、必要な nonce で hist localStorage を変更します。

そのような攻撃を防ぐためのより良いアイデアを知っている人はいますか?

4

1 に答える 1