gpt4 book ai didi

php - session 是否仅存储在浏览器中?

转载 作者:可可西里 更新时间:2023-11-01 12:46:13 27 4
gpt4 key购买 nike

我的站点受到暴力攻击,攻击者试图获取对用户帐户的访问权限。机器人没有用户代理。我有一个系统,如果某人在 10 分钟内每个帐户的登录尝试次数超过 3 次,该系统会阻止他们登录。

我还让它检查用户代理,如果没有,则退出。

我的问题是: session 是否只存储在浏览器中?我的想法是,他们正在使用通过命令行执行的脚本。

我也实现了这个:

if(!isset($_COOKIE[ini_get('session.name')])) {
header("HTTP/1.0 404 Not Found");
exit;
}

我还能做些什么来防止这些攻击?

最佳答案

session 变量的内容存储在服务器上,但是, session 由存储在客户端并随每个请求一起发送的 session ID 标识。通常 session ID 存储在 cookie 中,但也可以附加到 URL。

session hijacking 上有一篇非常有趣的读物在 Wiki 上,还有一个在 PHP Security Consortium这应该能让您更好地了解劫持是什么以及如何防止劫持。

有很多方法可以帮助防止这些攻击,我指出了三个:

  • 使用 PHP 的 session_regenerate_id()用户成功登录后。这会创建一个新的 session ID,与他们第一次访问公共(public)/安全区域时创建的 session ID 不同,当然如果有 session 开始的话。
  • 在成功登录时记录用户的 IP 地址、 session ID 和用户代理。检查每个请求的 IP 和用户代理,如果 IP 和代理与本次 session 不匹配,则让他们重新登录。但请注意,有时用户的 IP 可能会发生变化,可能会惹恼某些人。另请注意,用户代理也很容易被欺骗。
  • 使用 SSL/TCL 隐藏请求中发送的信息。

关于php - session 是否仅存储在浏览器中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11697541/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com