我有一个 PHP 网站,我的问题是:
如果有人设法通过 XSS 攻击窃取了我的用户的 cookie,
是否足以让他被识别为用户?
还是他的 IP 也必须与登录用户相同?
我的 php.ini 将 session.use-cookies 和 session.use-only-cookies 设置为 true
我有一个 PHP 网站,我的问题是:
如果有人设法通过 XSS 攻击窃取了我的用户的 cookie,
是否足以让他被识别为用户?
还是他的 IP 也必须与登录用户相同?
我的 php.ini 将 session.use-cookies 和 session.use-only-cookies 设置为 true
仅限 Cookie;当然,没有什么能阻止你这样做:
if (empty($_SESSION['ip']) {
$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
} else {
if ($_SESSION['ip'] != $_SERVER['REMOTE_ADDR']) {
// IP changed
}
}
请注意,通过 IP 地址识别用户只是权宜之计,我认为它与安全性无关——例如,大型组织使用 NAT,因此多台计算机将在整个 Internet 上显示为具有相同的地址。反之,例如移动用户的IP地址可能经常变化,所以不要自动假设“相同的IP地址==相同的用户,不同的IP地址==不同的用户”。
进一步关注:IPv4 和 IPv6 双栈、IPv6 隐私扩展等。
PHP 'SESSION' cookie 不包含开箱即用的 IP 地址信息。正如 Piskvor 所展示的,可以将其与该信息相关联,但这样做可能会破坏某些用户的应用程序。请参阅OWASP 关于IP 地址绑定可能导致的问题的讨论。