2009-03-05 33 views
18

Tôi đã cố gắng nghiên cứu cơ chế này nhưng chỉ tìm thấy gợi ý và những điều này không nhất quán. Phiên _id được gửi đến trình duyệt như thế nào và trình duyệt được hướng dẫn trả lại trình duyệt khi người dùng yêu cầu một trang mới như thế nào?Phiên làm việc PHP hoạt động như thế nào khi cookie bị tắt?

Cảm ơn, Chris

+0

Xem thêm [Sự hiểu biết của tôi về các phiên PHP có chính xác không?] (Http://stackoverflow.com/questions/523703/is-my-understanding-of-php-sessions-correct) – Gumbo

Trả lời

28

PHP sẽ làm 2 việc:

  • Nó sẽ ghi lại tất cả các liên kết để vượt qua một tham số GET thêm, thường là PHPSESSID nhưng điều này có thể được thay đổi bằng cách thiết lập session.name trong php. ini
  • Nó sẽ thêm đầu vào bị ẩn có cùng tên sau tất cả <form> thẻ mở.

Lưu ý rằng đây là điều nguy hiểm, bởi vì bất kỳ ai bạn ví dụ sao chép/dán URL chứa thông số PHPSESSID sẽ có thể chia sẻ phiên đăng nhập của bạn trên trang web - máy chủ web không có cách nào dễ dàng để nói rằng bạn khác với người bạn gửi liên kết đến ...

+2

Cảm ơn bạn. Đó chỉ là những gì tôi muốn biết. Dường như mỉa mai rằng cookie có thể bị tắt để tăng tính bảo mật cho khách hàng, nhưng hành động này sẽ giảm bảo mật tại máy chủ. – cjakeman

0

PHP's mô-đun phiên của riêng hỗ trợ tìm nạp id phiên từ dữ liệu GET và POST (ngoài cookie). Bạn có thể sử dụng http://uk.php.net/manual/en/session.configuration.php#ini.session.use-trans-sidhttp://uk.php.net/manual/en/session.configuration.php#ini.url-rewriter.tags để cho phép php xử lý chuyển tiếp id. Nhưng trong mọi trường hợp, hãy nhớ rằng đặc biệt nếu bạn đang sử dụng GET để vận chuyển id thì nhiều khả năng một số người dùng của bạn đã bỏ qua id phiên (hợp lệ) của họ một cách tình cờ.

Cơ chế cơ bản không quan tâm cách id phiên được chuyển từ máy khách đến máy chủ. Miễn là bạn chuyển giá trị "đúng" sang session_id() nó sẽ hoạt động - ngay cả khi bạn làm điều gì đó lạ (ngu ngốc?) Như lạm dụng tiêu đề etag làm phương tiện cho id phiên ;-)

0

Phiên hoạt động bằng cách tạo một id duy nhất (UID) cho mỗi khách truy cập và lưu các biến dựa trên UID này. UID là (1) được lưu trữ trong một cookie hoặc (2) được nhân giống trong URL.

Các vấn đề liên quan