Apache 模块 mod_session_cookie

Description:基于 Cookie 的会话支持
Status:Extension
Module Identifier:session_cookie_module
Source File:mod_session_cookie.c
Compatibility:在 Apache 2.3 和更高版本中可用

Summary

Warning

会话模块使用 HTTP cookie,因此可能成为跨站点脚本攻击的受害者,或向 Client 端公开潜在的私人信息。在服务器上启用会话功能之前,请确保已考虑到相关风险。

mod_session的此子模块为 HTTP cookie 中的远程浏览器上的用户会话存储提供支持。

使用 cookie 来存储会话可以消除服务器或一组服务器在本地存储会话或协作共享会话的需要,并且对于基于服务器的会话可能会占用大量资源的高流量环境很有用。

如果需要会话隐私,则可以在将会话写入 Client 端之前使用mod_session_crypto模块对会话的内容进行加密。

有关会话界面的更多详细信息,请参阅mod_session模块的文档。

Basic Examples

要创建一个简单会话并将其存储在名为 session 的 cookie 中,请按以下方式配置会话:

基于浏览器的会话

Session On
SessionCookieName session path=/

有关如何配置会话以从 CGI 应用程序读取和写入会话的更多示例,请参见mod_session示例部分。

有关如何使用会话存储用户名和密码详细信息的文档,请参阅mod_auth_form模块。

SessionCookieName Directive

Description:存储会话的 RFC2109 cookie 的名称和属性
Syntax:SessionCookieName name attributes
Default:none
Context:服务器配置,虚拟主机,目录,.htaccess
Status:Extension
Module:mod_session_cookie

SessionCookieName伪指令指定将在其中存储会话的 RFC2109 兼容 cookie 的名称和可选属性。使用Set-Cookie HTTP Headers 设置 RFC2109 cookie。

可以按照以下示例指定 cookie 属性的可选列表。这些属性将按原样插入 Cookie 中,并且 Apache 不会对其进行解释。确保根据 cookie 规范正确定义了属性。

Session On
SessionCookieName session path=/private;domain=example.com;httponly;secure;version=1;

SessionCookieName2 Directive

Description:存储会话的 RFC2965 cookie 的名称和属性
Syntax:SessionCookieName2 name attributes
Default:none
Context:服务器配置,虚拟主机,目录,.htaccess
Status:Extension
Module:mod_session_cookie

SessionCookieName2伪指令指定将在其中存储会话的 RFC2965 兼容 cookie 的名称和可选属性。 RFC2965 cookie 是使用Set-Cookie2 HTTP Headers 设置的。

可以按照以下示例指定 cookie 属性的可选列表。这些属性将按原样插入 Cookie 中,并且 Apache 不会对其进行解释。确保根据 cookie 规范正确定义了属性。

具有属性的 Cookie2

Session On
SessionCookieName2 session path=/private;domain=example.com;httponly;secure;version=1;

SessionCookieRemove Directive

Description:控制是否应从传入的 HTTP Headers 中删除会话 cookie
Syntax:SessionCookieRemove On|Off
Default:SessionCookieRemove Off
Context:服务器配置,虚拟主机,目录,.htaccess
Status:Extension
Module:mod_session_cookie

SessionCookieRemove标志控制在请求处理期间是否将从标题中删除包含会话的 cookie。

在反向代理的情况下,Apache 服务器充当后端原始服务器的服务器前端,将会话 cookie 的内容透露给后端可能会潜在地侵犯隐私。设置为 on 时,会话 cookie 将从传入的 HTTP Headers 中删除。