我已经建立了我的第一个登录系统。用户输入用户名和密码,并为用户提供用户名和身份证的会话ID。
然后使用此用户名和ID来自定义他们看到的页面。
每个用户的用户名和ID基本上都是公共信息,但会话ID只能由系统登录时进行。
问题:
在此处使用会话ID的安全风险是什么,其中内容基本上是公开的,但要获取会话ID,您必须登录?
有人可以从其他人的公共ID和用户名中伪造会话ID,因为这是会话ID包含在这里吗?这很容易吗?
他们的常见事情是否更安全?
答案 0 :(得分:2)
Php自己的会话功能非常好,会话的信息不会与用户一起存储在服务器上,会话ID有点像密码。
如果您想了解会话的安全性,我非常推荐this video of a speaker at defcon 18.
基本上会话足够安全,但是如果你对服务器和用户有足够的了解就可以破解它,但这是一个漫长而艰难的过程,大多数系统都没有给你足够的信息来破解会话。
答案 1 :(得分:0)
由于会话ID用于在使用用户名和密码进行初始用户身份验证后对用户进行身份验证,因此会话ID是新的身份验证密钥,因此必须受到保护。
由于大多数情况下已知可能的会话ID范围(PHP使用128位,160位或其他取决于hash function),但整个范围在合理的时间内无法利用,更容易对Session Hijacking或Session Fixation等会话进行更多自适应攻击。还有众所周知的protection measurements against these attacks on sessions以及developing guidelines。