2010-02-23 37 views
33

Tôi làm cách nào để đặt cookie trong PHP có thể đọc được cả trong HTTP và HTTPS?Cookie trên HTTP và HTTPS trong PHP

Nếu điều này là không thể, bạn có thể làm gì? Đặt hai cookie?

+0

Bạn đang sử dụng trình duyệt nào? Tôi nhận thấy rằng trong IE9 rằng tôi có một cookie trong HTTPS và HTTP với cùng một khóa nhưng mỗi cái có một giá trị khác nhau. Ngay cả khi cookie không phải là cookie an toàn. –

+0

Khi tôi hỏi câu hỏi đó, tôi đã tìm kiếm các giải pháp hoạt động trên các trình duyệt chính. Và vâng, giải pháp được trình bày hiệu quả. –

+0

Chỉ cần sử dụng cùng một tên miền (hoặc tên miền chính phù hợp) và cookie sẽ được truy cập thông qua cả HTTP và HTTPS theo mặc định. Nếu bạn muốn rõ ràng, hãy đặt '$ cookie-> setHttpOnly (false)' bằng https://github.com/delight-im/PHP-Cookie – caw

Trả lời

69

Theo mặc định, một cookie có thể được đọc bởi cả http và https tại cùng một URL.

Tuy nhiên, máy chủ có thể tùy chọn chỉ định cờ 'bảo mật' trong khi đặt cookie, điều này sẽ cho trình duyệt chỉ gửi qua kênh bảo mật, chẳng hạn như kết nối SSL.

Trong trường hợp này, cookie sẽ chỉ được gửi qua https. Cookie không được đánh dấu là an toàn sẽ được gửi qua cả http và https.

+5

Giải thích cần thiết.^_^ –

+0

Cookie có được đánh dấu là an toàn, bảo mật khi được gửi qua https không? (Tôi tưởng tượng câu trả lời là có). – Oversteer

+0

@Oversteer yes, nó an toàn hơn https. Vấn đề là nếu một hỗn hợp của http và https được sử dụng, cookie chỉ là phần bảo mật của thời gian. –

26

Giả sử tên miền của bạn vẫn giữ nguyên ngoại trừ loại tài nguyên, cookie trong PHP (hoặc bất kỳ ngôn ngữ nào) có thể được đọc từ cả HTTP và HTTPS.

ví dụ .:

http://www.example.com 
https://www.example.com 

Trong ví dụ này, các cookie sẽ có thể đọc được từ mỗi khác.

+0

bạn quên đặt ví dụ –

+4

Ví dụ ở ngay đó. Tôi đang chứng minh rằng cùng một URL chỉ với mã định danh tài nguyên đã thay đổi sẽ vẫn sử dụng cùng một cookie. Tên miền cookie dựa trên tên DNS và không có nhận thức về giao thức. Để làm rõ, bạn không cần phải làm bất cứ điều gì đặc biệt để nhận được hiệu quả mong muốn của bạn. Xem thông số Cookie để biết thêm thông tin: http://curl.haxx.se/rfc/cookie_spec.html –

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