我最近发现了以下配置设置:
我有些关于他们的问题:
session.use_strict_mode指定模块是否将使用严格的会话id模式。如果启用此模式,则模块不接受未初始化的会话ID。如果从浏览器发送未初始化的会话ID,则将新的会话ID发送到浏览器。通过采用严格的会话模式,保护应用程序不受会话固定。默认为0(禁用)。
我的基本理解是,它总是为您创建一个会话ID,但我已经看到另一个配置选项做了同样的事情。所以我认为我的理解是错误的。那我们为什么需要它?(我最近看到的是它阻止了OWASP A9,但它没有给我提供很多信息)
允许您在将二进制哈希数据转换为可读内容时,定义每个字符中存储了多少位。可能的值是'4‘(0-9,and ),'5’(0-9,and)和'6‘(0-9,and,and,"-",",")。
根据我的理解,这对安全性没有任何帮助,只会告诉您会话可以使用什么字符。数字越大,字符越多,字符串也就越小.那么,为什么不使用6 (而不是默认的4)呢?
这个问题很清楚,但是从可能的职能的大列表来看,哪一个(我假设默认的md5不好)更好呢?
在问这个问题之前,我看了这个回答。
发布于 2014-05-21 04:57:33
session.hash_bits_per_character这实际上只影响原始会话ID的编码方式。您通常可以将其设置为任何您想要的值。但是,6的值将导致“奇怪的”会话cookie,因为逗号必须进行URL编码。
session.hash_function如果PHP环境使用弱会话If而没有额外的熵(请参阅session.entropy_file和session.entropy_length),那么通过ID恢复PHP伪随机数生成器的种子。就可能变得可行,并使用它来预测未来的值(第4.2章)。像Whirlpool或SHA-512这样的慢速哈希算法使得这更难,因为找到哈希的原始输入需要更长的时间。但是,这个问题的真正解决方案当然是首先不要使用弱会话ID。
session.use_strict_mode这被认为是通过不允许攻击者编造自己的会话ID来增加会话固定攻击的难度。有关其背后的想法的更详细描述,请参见相应的RFC。
但是,攻击者不必想出自己的ID来执行会话固定攻击。他们可以简单地从应用程序中获得一个有效的ID并使用它。因此,这个特性是相当值得怀疑的。
https://security.stackexchange.com/questions/56592
复制相似问题