描述: | 会话加密支持 |
---|---|
状态: | 实验性 |
模块标识符: | session_crypto_module |
源文件: | mod_session_crypto.c |
兼容性: | 在Apache 2.3及更高版本中可用 |
会话模块使用HTTP cookie,因此可能成为跨站点脚本攻击的受害者,或向客户端公开潜在的私人信息。在服务器上启用会话功能之前,请确保已考虑到相关风险。
该子模块mod_session
提供对用户会话加密的支持,然后再将其写入本地数据库或通过HTTP cookie写入远程浏览器。
这可以帮助为用户会话提供隐私,在这些用户会话中,应使会话的内容对用户保持私密,或者需要针对跨站点脚本攻击的影响进行保护。
有关会话界面的更多详细信息,请参阅该mod_session
模块的文档。
要创建一个简单的加密会话并将其存储在名为session的cookie中 ,请按以下方式配置会话:
Session On SessionCookieName session path=/ SessionCryptoPassphrase secret
该会话将使用给定的密钥进行加密。通过确保每个服务器上使用相同的加密密钥,可以将不同的服务器配置为共享会话。
如果更改了加密密钥,则会话将自动失效。
有关如何使用会话存储用户名和密码详细信息的文档,请参阅mod_auth_form
模块。
描述: | 用于加密会话的加密密码 |
---|---|
句法: | SessionCryptoCipher name |
默认: | SessionCryptoCipher aes256 |
内容: | 服务器配置,虚拟主机,目录,.htaccess |
状态: | 实验性 |
模块: | mod_session_crypto |
兼容性: | 在Apache 2.3.0和更高版本中可用 |
该SessionCryptoCipher
指令允许在加密期间使用密码。如果未指定,则密码默认为
aes256
。
可能的值取决于使用的加密驱动程序,并且可能是以下之一:
描述: | 用于加密会话的加密驱动程序 |
---|---|
句法: | SessionCryptoDriver name [param[=value]] |
默认: | none |
内容: | 服务器配置 |
状态: | 实验性 |
模块: | mod_session_crypto |
兼容性: | 在Apache 2.3.0和更高版本中可用 |
该SessionCryptoDriver
伪指令指定要用于加密的加密驱动程序的名称。如果未指定,则驱动程序默认为编译为APR-util的推荐驱动程序。
在NSS加密驱动器需要用于配置的一些参数,它们被指定为与所述驱动器的名称之后的可选值的参数。
SessionCryptoDriver nss
SessionCryptoDriver nss dir=certs
SessionCryptoDriver nss dir=certs key3=key3.db cert7=cert7.db secmod=secmod
SessionCryptoDriver nss "dir=My Certs" key3=key3.db cert7=cert7.db secmod=secmod
在NSS加密驱动程序可能已经配置服务器的另一部分,例如
mod_nss
或mod_ldap
。如果发现已经配置,则会记录一条警告,并且现有配置将生效。为避免此警告,请按以下方式使用noinit参数。
SessionCryptoDriver nss noinit
为避免混淆,请确保所有需要NSS的模块都配置有相同的参数。
的OpenSSL的加密驱动程序支持的可选参数指定引擎以用于加密。
SessionCryptoDriver openssl engine=name
描述: | 用于加密会话的密钥 |
---|---|
句法: | SessionCryptoPassphrase secret [ secret ... ] |
默认: | none |
内容: | 服务器配置,虚拟主机,目录,.htaccess |
状态: | 实验性 |
模块: | mod_session_crypto |
兼容性: | 在Apache 2.3.0和更高版本中可用 |
该SessionCryptoPassphrase
伪指令指定用于在写入会话之前对会话的内容启用对称加密或在读取会话之后对会话的内容进行解密的密钥。
密钥较长时,由真正随机的字符组成,因此更加安全。更改服务器上的密钥会导致所有现有会话无效。
可以指定多个按键以支持按键旋转。列出的第一个密钥将用于加密,而列出的所有密钥都将尝试解密。要在一段时间内跨多个服务器轮换密钥,请在列表末尾添加一个新密钥,并在完全部署到所有服务器后,从列表开头删除第一个密钥。
从2.4.7版本开始,如果值以exec开头:将执行结果命令,并且程序返回到标准输出的第一行将用作键。
#key used as-is SessionCryptoPassphrase secret #Run /path/to/program to get key SessionCryptoPassphrase exec:/path/to/program #Run /path/to/otherProgram and provide arguments SessionCryptoPassphrase "exec:/path/to/otherProgram argument1"
描述: | 包含用于加密会话的密钥的文件 |
---|---|
句法: | SessionCryptoPassphraseFile filename |
默认: | none |
内容: | 服务器配置,虚拟主机,目录 |
状态: | 实验性 |
模块: | mod_session_crypto |
兼容性: | 在Apache 2.3.0和更高版本中可用 |
该SessionCryptoPassphraseFile
指令指定包含密钥用于加密或解密所述会话的配置文件的名称,指定每行一个。在服务器启动时会读取该文件,并且必须正常重启才能使httpd接收对密钥的更改。
与SessionCryptoPassphrase
伪指令不同,密钥不会在httpd配置中公开,并且可以通过适当地保护文件来隐藏。
可以指定多个按键以支持按键旋转。列出的第一个密钥将用于加密,而列出的所有密钥都将尝试解密。要在一段时间内跨多个服务器轮换密钥,请在列表末尾添加一个新密钥,并在完全部署到所有服务器后,从列表开头删除第一个密钥。