Cookies: trong phiên bản đầu tiên của họ, một tệp văn bản với một ứng dụng khách duy nhất Id tất cả các thông tin khác cần thiết về máy khách (ví dụ: vai trò)
Cookies là các bộ dữ liệu key-value
ban đầu được xử lý để giữ lại dữ liệu liên quan đến hoạt động của khách hàng. Đây duy trì là những gì chúng ta biết là phiên hoặc trạng thái ứng dụng . Về cơ bản, chúng được tạo ra để giữ trạng thái của các ứng dụng web; cụ thể hơn, nhà nước ở phía khách hàng. (1)
Cookies thường được đặt bởi máy chủ thông qua các tiêu đề phản hồi ( Set-Cookie key=value
). Tuy nhiên, chúng cũng có thể được thiết lập bởi khách hàng. Ví dụ: bởi DOM ( document.cookie
).
Một điều quan trọng cần biết về cookie là họ không xác định người dùng. Họ thay vì liên kết dữ liệu terna - máy khách - máy chủ / đường dẫn . (3)
Chúng tôi thường liên kết cookie với các tệp vì trong những ngày đầu của trình duyệt web, họ phải duy trì cookie bằng cách nào đó, là các tệp hỗ trợ khả thi nhất. Các trình duyệt ngày nay lưu trữ cookie (trong số những thứ khác) trong kho lưu trữ cục bộ (DB nhúng).
Phiên: chỉ id khách hàng duy nhất được gửi trong một tệp (còn được gọi là cookie), mọi thứ khác được lưu trữ trên máy chủ.
Theo phiên, tôi đoán bạn có nghĩa là phiên máy chủ . Như tôi đã nhận xét, các phiên cũng có thể được thực hiện ở phía khách hàng. Sự khác biệt với các phiên phía máy khách là dữ liệu được lưu trữ ở đâu đó trên phía máy chủ. (2) Trong các trường hợp như vậy, những gì chúng ta nhận được là id phiên; và chúng tôi nhận được nó dưới dạng cookie. Nếu không có id phiên, máy chủ sẽ không thể tương quan các yêu cầu đến với hoạt động trước đó của máy khách. (3) Ví dụ: người dùng được xác thực, giỏ hàng, v.v.
Trong mọi trường hợp, ID phiên không nhất thiết phải xác định người dùng. Nó liên kết một trạng thái ứng dụng cụ thể với một máy khách web. Phiên có thể hoặc không thể chứa dữ liệu người dùng.
Trong các ứng dụng phân tán, phiên nên được tuần tự hóa vì lý do rõ ràng. Nếu chúng được lưu trữ trong bộ nhớ, bộ nhớ trong (bộ phận) nên được tuần tự hóa. Một giải pháp phổ biến là lưu trữ các phiên trong tệp. Hoặc trong NoQuery DB như Redis.
Về an ninh. Các phiên phía máy chủ an toàn hơn phía máy khách. Khách hàng dễ bị đe dọa hơn bởi vì người dùng thường không biết về rất nhiều mối đe dọa mà họ tiếp xúc. Ít nhất không phải là người dùng thường xuyên.
Mặt khác, tấn công cơ sở hạ tầng phía máy chủ không phải là một phần ba.
JWT: mọi thứ được lưu trữ trong mã thông báo (cũng có thể được lưu trữ trong tệp văn bản, còn được gọi là cookie)
Không hẳn vậy. JWT lưu trữ dữ liệu chủ yếu liên quan đến ủy quyền và nhà phát hành mã thông báo.
Mặc dù họ sử dụng để chứa ID người dùng (phụ), chúng tôi tìm thấy JWT không xác định người dùng được xác thực. Ví dụ: mã thông báo cho các phiên của khách. Nội dung chính của JWT là khiếu nại ; các mục để được kiểm tra bởi quá trình ủy quyền.
Điều quan trọng cần nhớ là JWT không phải là kho lưu trữ toàn cầu . Các phiên hoặc các trạng thái ứng dụng vẫn phải được lưu trữ ở đâu đó và được quản lý một cách độc lập.
Về JWT, chúng thường được lưu trữ dưới dạng cookie, mặc dù chúng cũng có thể được lưu trữ trong kho lưu trữ địa phương. Hơn nữa, cộng đồng OWASP coi sessionStorage là an toàn hơn cho các trình duyệt web. Tuy nhiên, nó phụ thuộc vào phiên bản của trình duyệt .
1: World Wide Web có nghĩa là không trạng thái. Nếu chúng tôi muốn xây dựng các ứng dụng phía máy chủ không trạng thái, các phiên nên được lưu trữ ở đâu đó trong phía máy khách.
2: Biến ứng dụng phía máy chủ thành ứng dụng trạng thái .
3: Khách hàng là ứng dụng, không phải là người dùng.
user_id
cho người dùng đã đăng nhập.