2012-08-13 38 views

回答

3

除非您已啓用PHP trans_sid選項(BAD創意),否則POST與會話值無關。這是通過一個標準的cookie調解的。

Cookie受同域安全設置約束 - 它們可以在同一域中的主機之間共享(例如foo.example.com和bar.example.com),但是Amazon cookie不能與雅虎共享。

+0

不完全正確 - session.use_trans_sid關閉並不禁止php使用請求中通過post字段傳遞的會話id。 'session.use_only_cookies'是最接近的設置。我相信你知道這一點,但你的文章大多數讀者可能不知道。 – goat 2012-08-13 22:46:17

+0

您肯定可以手動將會話ID插入查詢字符串,隱藏表單字段,等等等等,但這是一個主要的安全漏洞,並且trans_sid關閉時,PHP將不會自動獲取該會話ID。 – 2012-08-14 00:53:16

+0

它*將*從post/get中的id恢復一個會話,除非你啓用了'session.use_only_cookies',並且這種方式多年來一直如此。嘗試一下。 http://pastebin.com/xhYa33Kp – goat 2012-08-14 02:07:43

0

不,他們沒有。即使發送會話cookie,您可以使用cURL POST進行會話,也會引用僅存在於請求服務器上的會話。

0

會話變量是特定於服務器的。如果會話ID設置正確,並且它們正在使用共享會話數據存儲區(例如memcached),它們只會跨越另一臺服務器。