PowerScan
VI

Cookie, Local Storage và IndexedDB: một phiên thực sự là gì

Trình duyệt Antidetect · 7 phút đọc · bởi PowerOps

Ảnh: Unsplash

Đăng nhập ghi vào ba nơi riêng biệt. Biết cái nào là cái nào giải thích vì sao phiên sống sót qua một số việc, hỏng vì những việc khác, và vì sao đồng bộ một hồ sơ phải chuyển cả ba.

"Đang đăng nhập" cảm giác như một thứ. Thực ra nó là ít nhất ba thứ, lưu ở ba nơi khác nhau với ba vòng đời khác nhau, và sự khác biệt đó giải thích phần lớn hành vi khó hiểu mà người ta gặp khi chuyển phiên giữa các máy.

Cookie

Các cặp khóa-giá trị nhỏ, được gửi tự động kèm mọi yêu cầu tới trang đã đặt chúng. Đây thường là nơi chứa token phiên.

Cookie là nhỏ nhất trong ba thứ và gánh nhiều nhất. Mất chúng là bạn bị đăng xuất.

Local Storage và Session Storage

Bộ nhớ khóa-giá trị dạng chuỗi, do JavaScript của trang đọc và ghi, có phạm vi theo origin. Nó không bao giờ được gửi kèm yêu cầu. Trang phải chủ động đọc nó.

Ứng dụng lưu tùy chọn, chi tiết hồ sơ đã cache, cờ tính năng và thường là refresh token ở đây. Local Storage tồn tại đến khi bị xóa; Session Storage chỉ tồn tại bằng thời gian của tab.

IndexedDB

Một cơ sở dữ liệu thực thụ trong trình duyệt: bản ghi có cấu trúc, chỉ mục, giao dịch. Đây là nơi một ứng dụng web hiện đại giữ mọi thứ đáng kể: lịch sử tin nhắn đã cache, hàng đợi ngoại tuyến, khóa mã hóa cho các tính năng mã hóa đầu cuối.

Vì sao điều này quan trọng với hồ sơ

Nó cho "cô lập" một nghĩa chính xác. Hai hồ sơ được cô lập khi cả ba thứ này tách biệt, cộng với cache và trạng thái tiện ích mở rộng. Một công cụ cô lập cookie mà dùng chung IndexedDB mới chỉ cô lập một phần ba dễ của vấn đề.

Nó cũng đặt ra chuẩn cho việc chuyển hồ sơ giữa các máy. Chỉ mang cookie sang thì tái tạo được hình dạng của một phiên mà không có thực chất của nó.

Kho lưu trữĐược ghi bởiThường chứa
CookieMáy chủ và script của trangToken phiên, tùy chọn, định danh theo dõi
Local StorageScript của trangRefresh token, trạng thái giao diện, chi tiết hồ sơ đã cache
Session StorageScript của trangTrạng thái theo từng tab, bị bỏ khi tab đóng
IndexedDBScript của trangDữ liệu đã cache, hàng đợi ngoại tuyến, khóa mã hóa

Chuyển phiên giữa các máy của chính bạn

PowerOps chụp cookie, Local Storage và IndexedDB khi một hồ sơ đóng và khôi phục chúng khi hồ sơ mở ở nơi khác. Mỗi loại là một công tắc, cho toàn workspace hoặc cho một hồ sơ riêng lẻ, nên bạn chuyển đúng lượng mình định chuyển.

Có hai đặc điểm đáng biết về cách nó hoạt động:

Điểm thứ hai là một giới hạn có chủ ý. Hai máy chỉnh sửa độc lập một phiên tạo ra hai phiên hợp lệ một nửa và, khá thường xuyên, một tài khoản bị đăng xuất trên cả hai. Một kho cookie không có cách nào giải quyết xung đột hợp nhất.

Điều rút ra trong thực tế

Hãy đóng hồ sơ thay vì tắt cưỡng bức. Việc ghi ra khi đóng là thứ làm cho phiên có thể di chuyển, và đó là thói quen rẻ nhất trong danh sách này.

Tất cả bài viết · Chạy quét