禁用 Cookie 时,PHP 会话如何工作?
我试图研究这种机制,但只找到提示,这些不是很一致。会话_id如何发送到浏览器,当用户请求新页面时,如何指示浏览器返回会话?
谢谢 克里斯
我试图研究这种机制,但只找到提示,这些不是很一致。会话_id如何发送到浏览器,当用户请求新页面时,如何指示浏览器返回会话?
谢谢 克里斯
PHP将做2件事:
<form>
请注意,这是一件危险的事情,因为任何您(例如,复制/粘贴包含PHPSESSID参数的URL)的人都将能够在网站上共享您的登录会话 - Web服务器没有简单的方法来告诉您与您发送链接的人不同...
PHP自己的会话模块支持从GET和POST数据(除了cookie)中获取会话ID。您可以使用 http://uk.php.net/manual/en/session.configuration.php#ini.session.use-trans-sid 和 http://uk.php.net/manual/en/session.configuration.php#ini.url-rewriter.tags 让php处理id的转发。但无论如何,请记住,特别是如果您使用GET来传输ID,则更有可能是某些用户意外泄露其(有效)会话ID。
基础机制不关心会话 ID 如何从客户端传输到服务器。只要您将“正确”值传递给session_id()它就可以工作 - 即使您做了一些奇怪(愚蠢?)的事情,例如滥用etag-header作为会话ID的工具;-)