Go

セキュリティと認証

JWT、OAuth2、セッション管理、RBAC、crypto/rand と math/rand、TLS 設定、セキュアコーディング、セキュリティのベストプラクティス

24 面接問題·
Senior
1

JWT トークンと従来のサーバーセッションの主な違いは何ですか?

回答

JWT トークンはステートレス(サーバー側に状態を持たない)であり、必要なすべての情報がトークン自体にエンコードされて含まれています。データをメモリやデータベースのサーバー側に保存し、クライアント側には session ID のみを保持する従来のセッションとは異なり、JWT は保存の責任をクライアントに移します。サーバー間で共有状態が不要になるため、水平スケーリングが容易になります。

2

ドットで区切られた JWT トークンの 3 つの部分は何ですか?

回答

JWT は Base64URL でエンコードされ、ドットで区切られた 3 つの部分で構成されます。Header(アルゴリズムとタイプ)、Payload(claims/データ)、Signature(整合性の検証)です。構造は header.payload.signature です。header は署名アルゴリズム(HS256、RS256)を示し、payload は claims(iss、sub、exp)を含み、signature はトークンが改ざんされていないことを保証します。

3

トークンの有効期限のタイムスタンプを定義する標準の JWT claim はどれですか?

回答

'exp'(expiration time)claim は、それ以降トークンを受け入れてはならない Unix タイムスタンプを定義します。標準の claims には 'iss'(issuer)、'sub'(subject)、'aud'(audience)、'iat'(issued at)、'nbf'(not before)も含まれます。exp claim の検証は、トークンの有効期間を制限し、盗まれたトークンの影響を軽減するために極めて重要です。

4

JWT に署名する際の HS256 と RS256 の主な違いは何ですか?

5

JWT を自然な有効期限が切れる前に失効させるにはどうすればよいですか?

+21 面接問題

次の面接に向けてGoをマスター

すべての問題、flashcards、技術テスト、コードレビュー演習、面接シミュレーターにアクセス。

無料で始める