Hãy xem qua điều này:
Cookie và phiên là cả hai cách để duy trì trạng thái của ứng dụng giữa các yêu cầu khác nhau mà trình duyệt đưa ra. Chẳng hạn, nhờ chúng mà bạn không cần phải đăng nhập mỗi khi yêu cầu một trang trên StackOverflow .
Bánh quy
Cookie là các bit dữ liệu nhỏ (dài tối đa 4KB), giữ dữ liệu trong cặp khóa = giá trị:
name=value
Chúng được đặt bằng JavaScript hoặc thông qua máy chủ sử dụng tiêu đề HTTP .
Cookie có thời gian hết hạn được đặt, ví dụ sử dụng tiêu đề HTTP:
Set-Cookie: name2=value2; Expires=Wed, 19 Jun 2021 10:18:14 GMT
Điều này sẽ khiến trình duyệt đặt một cookie có tên name2
có giá trị là value2
, sẽ hết hạn sau khoảng 9 năm.
Cookie được coi là không an toàn cao vì người dùng có thể dễ dàng thao túng nội dung của họ. Đó là lý do tại sao bạn nên luôn xác thực dữ liệu cookie . Đừng cho rằng những gì bạn nhận được từ một cookie nhất thiết phải là những gì bạn mong đợi.
Cookie thường được sử dụng để duy trì trạng thái đăng nhập, nơi tên người dùng và một mã băm đặc biệt được gửi từ trình duyệt và máy chủ kiểm tra chúng với cơ sở dữ liệu để phê duyệt quyền truy cập.
Cookie cũng thường được sử dụng trong quá trình tạo phiên .
Phiên
Các phiên hơi khác nhau. Mỗi người dùng nhận được một ID phiên , được gửi trở lại máy chủ để xác thực bằng cookie hoặc bằng biến GET .
Các phiên thường tồn tại trong thời gian ngắn, điều này làm cho chúng lý tưởng trong việc lưu trạng thái tạm thời giữa các ứng dụng. Phiên cũng hết hạn sau khi người dùng đóng trình duyệt.
Phiên được coi là an toàn hơn cookie vì bản thân các biến được lưu giữ trên máy chủ . Đây là cách nó hoạt động:
- Máy chủ mở một phiên (đặt cookie qua tiêu đề HTTP)
- Máy chủ đặt một biến phiên.
- Trang thay đổi khách hàng
- Khách hàng gửi tất cả cookie, cùng với ID phiên từ bước 1.
- Máy chủ đọc ID phiên từ cookie.
- Máy chủ khớp với ID phiên từ danh sách trong cơ sở dữ liệu (hoặc bộ nhớ, v.v.).
- Máy chủ tìm một kết quả phù hợp, đọc các biến hiện đã có trên
$_SESSION
superglobal.
Nếu PHP không tìm thấy sự phù hợp, nó sẽ bắt đầu một phiên mới và lặp lại các bước từ 1-7.
Bạn có thể lưu trữ thông tin nhạy cảm trên một phiên vì nó được lưu trên máy chủ, nhưng lưu ý rằng ID phiên vẫn có thể bị đánh cắp nếu người dùng, chẳng hạn, đăng nhập qua WiFi không an toàn. (Kẻ tấn công có thể đánh hơi các cookie và đặt nó làm cookie của chính nó, hắn sẽ không nhìn thấy các biến đó, nhưng máy chủ sẽ xác định kẻ tấn công là người dùng).
Đó là ý chính của nó. Bạn có thể tìm hiểu thêm trên sách hướng dẫn PHP về cả hai chủ đề này.