Câu trả lời ngắn
Quy tắc theo thứ tự ưu tiên:
- Quy tắc 1. Không bao giờ tin tưởng đầu vào của người dùng: cookie không an toàn. Sử dụng phiên cho dữ liệu nhạy cảm.
- Quy tắc 2. Nếu dữ liệu liên tục phải duy trì khi người dùng đóng trình duyệt, hãy sử dụng cookie.
- Quy tắc 3. Nếu dữ liệu liên tục không phải duy trì khi người dùng đóng trình duyệt, hãy sử dụng phiên.
- Quy tắc 4. Đọc câu trả lời chi tiết!
Nguồn: https://www.lucidar.me/en/web-dev/simes-or-cookies/
Câu trả lời chi tiết
Bánh quy
- Cookies được lưu trữ ở phía máy khách (trong trình duyệt của khách truy cập).
- Cookie không an toàn: khá dễ đọc và viết nội dung cookie.
- Khi sử dụng cookie, bạn phải thông báo cho khách truy cập theo luật châu Âu (GDPR).
- Hết hạn có thể được đặt, nhưng người dùng hoặc trình duyệt có thể thay đổi nó.
- Người dùng (hoặc trình duyệt) có thể (được đặt thành) từ chối sử dụng cookie.
Phiên
- Phiên được lưu trữ ở phía máy chủ.
- Phiên sử dụng cookie (xem bên dưới).
- Phiên an toàn hơn cookie, nhưng không thể xâm phạm.
- Hết hạn được đặt trong cấu hình máy chủ (ví dụ php.ini).
- Thời gian hết hạn mặc định là 24 phút hoặc khi đóng trình duyệt.
- Hết hạn được đặt lại khi người dùng làm mới hoặc tải một trang mới.
- Người dùng (hoặc trình duyệt) có thể (được đặt thành) từ chối sử dụng cookie, do đó phiên.
- Về mặt pháp lý, bạn cũng phải thông báo cho khách truy cập về cookie, nhưng việc thiếu tiền lệ vẫn chưa rõ ràng.
Sự lựa chọn phù hợp
Phiên sử dụng một cookie! Dữ liệu phiên được lưu trữ ở phía máy chủ, nhưng UID được lưu trữ ở phía máy khách trong cookie. Nó cho phép máy chủ khớp một người dùng nhất định với dữ liệu phiên phù hợp. UID được bảo vệ và khó bị hack, nhưng không thể xâm phạm. Đối với các hành động nhạy cảm (thay đổi email hoặc đặt lại mật khẩu), không dựa vào các phiên không cookie: yêu cầu mật khẩu người dùng để xác nhận hành động.
Dữ liệu nhạy cảm không bao giờ được lưu trữ trong cookie (email, mật khẩu được mã hóa, dữ liệu cá nhân ...). Hãy ghi nhớ dữ liệu được lưu trữ trên một máy tính nước ngoài và nếu máy tính không riêng tư (lớp học hoặc máy tính công cộng) thì người khác có thể đọc nội dung cookie.
Nhớ tôi dữ liệu phải được lưu trữ trong các tập tin cookie, nếu không dữ liệu sẽ bị mất khi người dùng đóng trình duyệt. Tuy nhiên, không lưu mật khẩu hoặc dữ liệu cá nhân của người dùng trong cookie 'nhớ tôi'. Lưu trữ dữ liệu người dùng trong cơ sở dữ liệu và liên kết dữ liệu này với một cặp ID / khóa được mã hóa được lưu trữ trong cookie.
Sau khi xem xét các đề xuất trước đó, câu hỏi sau đây cuối cùng là điều giúp bạn lựa chọn giữa cookie và phiên:
Phải duy trì dữ liệu liên tục khi người dùng đóng trình duyệt?
- Nếu câu trả lời là có , hãy sử dụng cookie .
- Nếu câu trả lời là không , hãy sử dụng phiên .