Go

Bảo mật và Xác thực

JWT, OAuth2, quản lý phiên, RBAC, crypto/rand vs math/rand, cấu hình TLS, lập trình an toàn, các thực hành bảo mật tốt nhất

24 câu hỏi phỏng vấn·
Senior
1

Sự khác biệt chính giữa token JWT và phiên máy chủ truyền thống là gì?

Câu trả lời

Token JWT là stateless (không có trạng thái phía máy chủ) và chứa tất cả thông tin cần thiết được mã hóa bên trong chính token đó. Khác với các phiên truyền thống lưu trữ dữ liệu trong bộ nhớ hoặc cơ sở dữ liệu phía máy chủ và chỉ giữ một session ID phía máy khách, JWT chuyển trách nhiệm lưu trữ sang máy khách. Điều này tạo thuận lợi cho việc mở rộng theo chiều ngang vì không cần trạng thái chia sẻ giữa các máy chủ.

2

Ba phần của một token JWT được phân tách bằng dấu chấm là gì?

Câu trả lời

Một JWT bao gồm ba phần được mã hóa Base64URL và phân tách bằng dấu chấm: Header (thuật toán và loại), Payload (claims/dữ liệu) và Signature (xác minh tính toàn vẹn). Cấu trúc là header.payload.signature. Header chỉ định thuật toán ký (HS256, RS256), payload chứa các claims (iss, sub, exp) và signature đảm bảo token không bị giả mạo.

3

Claim JWT chuẩn nào định nghĩa timestamp hết hạn của token?

Câu trả lời

Claim 'exp' (expiration time) định nghĩa timestamp Unix mà sau đó token không còn được chấp nhận. Các claims chuẩn còn bao gồm 'iss' (issuer), 'sub' (subject), 'aud' (audience), 'iat' (issued at) và 'nbf' (not before). Việc xác thực claim exp là rất quan trọng để giới hạn thời gian hiệu lực của token và giảm thiểu tác động của một token bị đánh cắp.

4

Sự khác biệt chính giữa HS256 và RS256 khi ký JWT là gì?

5

Làm thế nào để thu hồi một JWT trước khi nó hết hạn tự nhiên?

+21 câu hỏi phỏng vấn

Nắm vững Go cho lần phỏng vấn tiếp theo

Truy cập tất cả câu hỏi, flashcards, bài kiểm tra kỹ thuật, bài tập code review và mô phỏng phỏng vấn.

Bắt đầu miễn phí