您的「主機」不會導致問題,PHP正在追加此數據。具體來說,PHP被配置爲將PHPSESSID
變量附加到URL以允許PHP跟蹤會話。在調用session_start
之前,可以使用ini_set
來更改相關設置,或者通過更新php.ini文件來永久更改相關設置(儘管由於您承載了最後一個選項可能已不存在)。 This is a list of the available runtime settings for sessions in PHP。
雖然您可以控制是否將值附加到URL的末尾,但需要跟蹤會話。或者,您可以將PHP配置爲使用Cookie跟蹤會話,但要求使用Cookie來跟蹤會話可能會導致拒絕Cookie的用戶中斷應用程序。
總之,您可以控制會話ID使其更漂亮一些(通過將PHPSESSID重命名爲更適合的內容或使該值更加隱蔽),但除非您想使用Cookie來維護會話,否則會卡住這個「垃圾」在你的URL上。如果您僅使用,某些用戶可能無法維護會話。
要啓用基於Cookie的會話處理,你可以既可以執行:
// stop PHP from automatically embedding PHPSESSID on local URLs
ini_set('session.use_trans_sid', false);
或
// only use cookies (no url based sessions)
ini_set('session.use_only_cookies', true);
允許cookie以外的任何內容都會暴露用戶進行會話修復。 – Artefacto 2010-07-07 01:21:51
@Artefacto,[Wikipedia建議了除簡單地不接受GET/POST SID之外的許多方法](http://en.wikipedia.org/wiki/Session_fixation) – 2010-07-07 01:27:49
在'Mike Sherov'答案中,他提出錯誤而不是真實的是正確的? @Artefacto:你能解釋一點關於會話固定問題嗎?所以只使用cookie而不是會話? – Jonathan 2010-07-07 01:32:08