JSON Webトークン(JWT)に関する一般的な質問があります。JSON Webトークン(JWT)
JWTがハッキングや物理的なアクセスによってクライアントから盗まれた(たとえば、Cookieやアプリケーションのデータベースとして保存されていた)場合は、サーバーに送信して正当だと思うサーバーに送信できますユーザー。これは正しいです?
クライアントからデバイス/ブラウザのタイプまたは参照コードを一緒に送信するなど、これを防ぐための一般的な、または標準的な方法はありますか?サーバーは、JWTトークンが生成されて保存されたと。 (ただし、標準的な方法はサーバーに何も保存しないことです)
Java JWT(JJWT)、RESTful Java Jersey、およびGoogle Web Toolkitを実装する必要があるため、アドバイスしてください。 (私はこのような文書を読んできました:[https://stormpath.com/blog/where-to-store-your-jwts-cookies-vs-html5-web-storage])。
ありがとうございました!あなたはキーと有効期限exp
(よりすなわち創造に関してでJWTを確認することができ、サーバー側では
byte[] key = getSignatureKey();
String jwt = Jwts.builder().setIssuer("myTestApplication")
.setSubject("myTest")
.setExpiration(expirationDate)
.put("scope", "testing")
.signWith(SignatureAlgorithm.HS256, key)
.compact();
:あなたのようJWTを構築しているクライアントで
私よりも良い答え: – mxlse
ブラウザの指紋(User-AgentやAccept- *など)を追加することもできます。また、2つのクッキーを使用します.1つはSameSiteクッキーであり、すべての機密操作に必要です(csrfはまだデータを盗みながら操作することはできません) –
サーバーによって生成されたトークンはサーバーによってデジタル署名され、トークンがサーバに戻ったとき、サーバは、それが生成したトークンであることをサーバが認識するようになる。ただし、サーバーが同じクライアントであることを100%確かめることはできません。サーバーはトークンを生成したことを100%確信しています。したがって、他のコメントで述べたように、クライアント側(クライアントのIPアドレス、クライアントのブラウザの指紋など)は、同じクライアントであることを保証する必要がありますが、プロキシや携帯電話などの特定のユースケースでは破損します。私の理解は正しいのですか? – ifelsemonkey