Công cụ dành cho nhà phát triển · Bộ giải mã JWT
Không bao giờ dán mã thông báo truy cập trực tiếp vào bộ giải mã JWT phía máy chủ
· Tại sao nó quan trọng
jwt bảo vệ quyền riêng tư
Mã thông báo mang là thông tin xác thực: bất kỳ ai nắm giữ nó đều có thể hoạt động như bạn cho đến khi nó hết hạn. Bài đăng này giải thích những gì bạn bàn giao khi dán một công cụ vào một công cụ giao tiếp với máy chủ của nó và cách gỡ lỗi một cách an toàn.
Dán nhanh dưới áp lực — thời điểm thông tin xác thực đang hoạt động rời khỏi máy của bạn
Quá trình sản xuất API phản hồi 401 và bước gỡ lỗi nhanh nhất là dán phần ghi nhớ JWT của nó vào bộ giải mã web. Tại thời điểm đó, bạn có thể trao thông tin xác thực đang hoạt động cho máy chủ không liên quan đến ứng dụng của bạn. Bảng kết quả hiển thị các xác nhận quyền sở hữu có thể đọc được không cho bạn biết nhà điều hành đó đã giữ lại, ghi nhật ký hoặc chuyển tiếp những gì. Dừng lại và xác định xem mã thông báo có hoạt động hay không trước khi xử lý bộ giải mã tiện lợi làm bộ định dạng trung lập.
Người mang nghĩa là quyền sở hữu là quyền hạn - tại sao mã thông báo gần với mật khẩu hơn là ID
Thông tin xác thực mang tên cấp quyền cho bất kỳ ai sở hữu nó theo quy tắc của dịch vụ phát hành cho đến khi nó hết hạn hoặc bị thu hồi. Chữ ký của nó có thể chứng minh tính xác thực đối với người xác minh bằng khóa phù hợp; nó không làm cho mã thông báo được tiết lộ một cách an toàn. Một số mã thông báo cung cấp quyền truy cập chỉ đọc, số khác cho phép ghi hoặc hoạt động tài khoản đặc quyền. Ngay cả khi bạn tin tưởng vào các xác nhận quyền sở hữu được hiển thị bên trong nó, việc gửi chuỗi nhỏ gọn hoàn chỉnh sẽ cung cấp các byte chữ ký và cả ba phân đoạn được mã hóa cho người nhận.
Công cụ phía máy chủ có thể thấy gì — mã thông báo đầy đủ, các xác nhận quyền sở hữu bên trong nó và về nguyên tắc, khả năng phát lại nó khi nó hợp lệ
Bộ giải mã phía máy chủ có thể nhận toàn bộ chuỗi trong yêu cầu của nó, xem tài khoản và xác nhận tên của nó, đồng thời về nguyên tắc phát lại chuỗi đó đối với dịch vụ khi nó hợp lệ. Liệu nhà điều hành có thực sự làm như vậy hay không là một câu hỏi riêng biệt mà bạn không thể trả lời chỉ từ một câu vui vẻ “chúng tôi không lưu trữ mã thông báo”. Nhật ký, truy tìm, tiện ích mở rộng trình duyệt và dịch vụ trung gian có thể tạo thêm bản sao. POST trần trên HTTPS mã hóa chuyến đi; nó không loại bỏ quyền truy cập của đích vào bản rõ sau khi đến.
Nội dung trong tải trọng — mã định danh người dùng, địa chỉ email, vai trò và phạm vi là dữ liệu cá nhân ngay cả khi không phát lại
Tải trọng JWT được mã hóa theo url Base64, không được mã hóa. Nó có thể chứa mã nhận dạng chủ đề, email, vai trò, phạm vi hoặc ID đối tượng thuê ngay cả khi mã thông báo đã hết hạn và không thể cấp quyền truy cập nữa. Những trường đó có thể nhạy cảm về mặt cá nhân hoặc thương mại, độc lập với chữ ký. Nhãn thuật toán và xác nhận quyền sở hữu hết hạn chỉ là dữ liệu bên trong mã thông báo cho đến khi người xác minh đáng tin cậy kiểm tra nó; Bộ giải mã của ToolAcre cố tình không xác minh chữ ký. Không sử dụng đầu ra của nó như một quyết định cấp phép.
Thói quen gỡ lỗi an toàn hơn — giải mã phía máy khách, mã thông báo đã hết hạn hoặc thử nghiệm cũng như thu hồi hoặc xoay vòng sau bất kỳ lần tiếp xúc nào
Ưu tiên trình gỡ lỗi ngoại tuyến hoặc tập lệnh cục bộ mà bạn kiểm soát đối với tài liệu sản xuất thực. Sử dụng mã thông báo tổng hợp đã hết hạn, xoay vòng hoặc rõ ràng khi trình diễn bộ giải mã web công khai. Nếu mã thông báo đang hoạt động được dán vào một trang không đáng tin cậy, hãy xoay hoặc thu hồi mã thông báo đó thay vì chỉ xóa lịch sử trình duyệt. Giải mã phía máy khách là một cải tiến so với việc tải giá trị lên nhưng không tự động an toàn: tập lệnh trang và tiện ích mở rộng có thể đọc dữ liệu đầu vào DOM và các trang của nhà phát triển sản xuất của ToolAcre tải tập lệnh kết nối trang web AdSense, GA4 và Trình quản lý thẻ của bên thứ ba ngay cả khi việc phân phát quảng cáo bị vô hiệu hóa và các sự kiện phân tích ToolAcre cần có sự đồng ý. Không dán mã thông báo truy cập trực tiếp vào bất kỳ trang web nào, kể cả ToolAcre.
Ví dụ đã hoạt động - một phiên gỡ lỗi kiểm tra mã thông báo mà không cần rời khỏi trình duyệt, được xác minh trong bảng điều khiển mạng
Tạo một thử nghiệm vô hại JWT trong môi trường phát triển, vô hiệu hóa thử nghiệm đó và kiểm tra bản sao đó khi bảng Mạng của trình duyệt đang mở. ToolAcre phân tách và giải mã nó trong mã trang mà không có yêu cầu tải lên ToolAcre mang theo byte của nó; bạn có thể kiểm tra những yêu cầu đó trong phiên của mình. Bạn vẫn có thể thấy nội dung trang web và lưu lượng truy cập tập lệnh của bên thứ ba được tiết lộ, do đó, bảng điều khiển Mạng trống không phải là yêu cầu. So sánh tiêu đề và tải trọng được hiển thị với dữ liệu kiểm tra đáng tin cậy của bạn và lưu ý cảnh báo "chữ ký chưa được xác minh" rõ ràng trước khi diễn giải bất kỳ khiếu nại nào.
Điều này không bao gồm những gì — mã thông báo bị rò rỉ thông qua nhật ký và URL, là các đường dẫn rò rỉ riêng biệt
Bài viết này không giải quyết mã thông báo bị rò rỉ vào nhật ký ứng dụng, chuỗi truy vấn URL, chia sẻ màn hình hoặc tiện ích mở rộng trình duyệt. Giải mã cục bộ cũng không ngăn chặn tập lệnh độc hại đã có quyền truy cập vào trang của bạn đọc các trường văn bản của nó. Sử dụng thời gian tồn tại ngắn, phạm vi đặc quyền tối thiểu và kiểm soát ghi nhật ký an toàn tại dịch vụ phát hành; bộ giải mã không thể trang bị thêm các thuộc tính đó vào thông tin xác thực được tạo không an toàn.
Bài học rút ra: kiểm tra cục bộ hoặc hoàn toàn không — bộ giải mã ToolAcre JWT chạy trong trình duyệt, không lưu trữ gì và không bao giờ xác minh, do đó, nó không cần cũng như không gửi mã thông báo của bạn
Kiểm tra cục bộ hoặc với dữ liệu dùng một lần. Bộ giải mã ToolAcre JWT đọc và phân tích mã thông báo đã dán trong trình duyệt của bạn và không xác minh mã thông báo đó, do đó, nó có thể giúp chẩn đoán định dạng mà không cần cấp quyền. Vì đây vẫn là trang web có mã thực thi khác nên hãy chọn công cụ ngoại tuyến để có thông tin xác thực trực tiếp; mã thông báo sản xuất an toàn nhất để dán vào bộ giải mã trực tuyến là không có.