You are here

Drupal专业开发指南 第16章 cookie的必要性

g089h515r806 的头像
Submitted by g089h515r806 on 星期日, 2009-08-23 16:07

老葛的Drupal培训班 Think in Drupal

如果浏览器不接受cookie的话,那么就建立不了会话。这是因为PHP指令sessions_use_only_cookies已被设置为1;而sessions.use_trans_sid也被设置为0,这样其替代选项(在URL的查询字符串中传递PHPSESSID)也被禁用。这种方式是Zend所推荐的:
 
    基于URL的会话管理与基于cookie的相比,安全性更差一些。例如,用户可能向朋友发送一封email,其中带有了一个URL,它包含了处于激活状态的会话ID,或者用户可能将一个包含了会话ID的URL,保存在他们的书签里,之后再使用同一会话ID来访问你的站点。
 
    当PHPSESSID出现在一个站点的查询字符串中时,它标志着主机提供商已经锁住了PHP,并且不允许通过ini_set()函数在运行时设置PHP指令。可选的一种替代方式是将设置移到.htaccess文件中(如果在主机上,PHP是作为Apache的一个模块运行的话)或者一个本地的php.ini文件中(如果在主机上,PHP是作为一个可执行的CGI运行时)。
  为了防止会话欺诈,当用户登录时会重新生成会话ID(参看modules/user/user.module里的user_authenticate_finalize()函数)。当用户修改密码时,也会重新生成会话。

Drupal版本: