PHP“记住我”安全漏洞?

2024-04-23

我正在编写一个配备“记住我”的登录表单,到目前为止,我读过的教程(部分是为了确保我做得正确)都说将加密的密码存储在 cookie 中与用户名。然后,每次 PHP 检查当前用户是否未登录时,检查他们的 cookie 并查找这些值。如果用户名与密码匹配,则您已加入。

对我来说,这是一个巨大的安全漏洞。如果有人要破解数据库或以某种方式访问​​加密密码,他们甚至不需要破解它们。只需设置您自己的 cookie 即可。我是正确的,还是只是偏执?

我的登录系统使用会话来跟踪当前用户 ID,并使用 1/0 进行快速登录/注销检查。 AFAIK 用户无法编辑会话,因此这是安全的(如果不是,请告诉我)。我正在考虑将会话 ID 存储在 cookie 中,以便稍后恢复它,但这也不安全。

我非常关心用户的安全,如何在保持网站正常运行的同时正确保护他们的信息?


通常当服务器请求记住用户,它会在normal会话 cookie,这个新字符串包含用户名和合理数量的随机字符,使其无法被猜测。这显然保存在数据库中(出于安全原因,您可能希望将其视为密码,从而对其加盐和散列),并且下次用户使用同一浏览器连接时(假设旧会话已过期),应用程序会收到随机字符串,检查数据库,如果存在匹配,则对用户进行身份验证。

另一种方法是将会话过期时间提前一定时间。

这里有什么安全漏洞?如果您使用良好的随机生成器,唯一可能发生的情况是用户从共享浏览器访问应用程序并且在结束时不会手动注销。

The normal规则始终适用,因为您处于不安全的通道上:使用 HTTPS,否则位于您的计算机和服务器之间的任何人都可以窃取 cookie(会话 cookie 或会话 cookie)记住账号一)并表现得就像是你一样。

额外奖励,这是杰夫·阿特伍德的必读之作 https://stackoverflow.com/a/477578/315306

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP“记住我”安全漏洞? 的相关文章

  • 使用 PDO 准备语句使用搜索字段中的多个关键字进行 LIKE 查询

    网站用户使用搜索表单来查询产品数据库 输入的关键字在数据库中搜索产品的标题 public function startSearch keywords keywords preg split s keywords totalKeywords
  • PHP mail() 函数不发送邮件

    我有一个小问题 我正在使用一个工作脚本 在我的测试帐户 共享服务器上工作 使用 mail 函数通过 PHP 发送邮件 我刚刚得到了一个专用服务器 但我还无法让该功能发挥作用 在过去的 10 个小时左右的时间里 我阅读了有关 BIND 用于
  • 智能位置表单字段

    我的用户注册表单上有一个文本字段location 我本质上希望这个字段能够根据 Google 地图 或同等地图 进行验证 只允许有效位置通过 最好采用类似的格式滑铁卢 伦敦 or 伦敦 英国 要求 除了位置名称之外 我还想返回该位置中心的坐
  • Ubuntu 18.04升级后php7.2-curl无法安装

    今天从 16 04 升级到 18 04do release upgrade d 在升级过程中 我被告知一些软件包将被删除 其中包括 删除 libperl5 22 lxc common perl modules 5 22 php imagic
  • PHP:如何防止不必要的换行

    我正在使用 PHP 创建一些基本的 HTML 标签始终相同 但实际链接 标题对应于 PHP 变量 string p a href strong i title i i strong a br echo string fwrite outfi
  • 将 PHP mcrypt 与 Rijndael/AES 结合使用

    我正在尝试使用 php 中的 mcrypt 和密码 Rijndael 加密一些文本消息 但我不确定 MCRYPT MODE modename 根据 PHP 手册 这些可用 ecb cbc cfb ofb nofb 或 stream 但我读到
  • Heroku 上的 Google Vision API 身份验证

    在 Heroku 上验证 Vision API 的最佳 简单方法是什么 在开发中我只使用 vision Google Cloud Vision new project instacult keyfile path to keyfile js
  • DOMPDF - 未找到“字体”类

    我正在尝试通过命令行添加字体 每次我尝试都会收到以下错误 Fatal error Class Font not found in home scripts public html MarketingPalv2 load font php o
  • 使用php将文本文件转换为xml?

    data txt ha15rs 250 home2 gif 2 ha36gs 150 home3 gif 1 ha27se 300 home4 gif 4 ha4678 200 home5 gif 5 我想使用 php 使用 simplex
  • 从数据库 MYSQL 和 Codeigniter 获取信息

    如果你们需要其他信息 上一个问题就在这里 从数据库中获取信息 https stackoverflow com questions 13336744 fetching information from the database 另一个更新 尽
  • OpenJDK 版本控制

    上下文 我想确保我们系统上安装的 Java 不受 CVE 2022 21449 的影响 java version 给出 openjdk version 11 0 7 2020 04 14 LTS OpenJDK Runtime Enviro
  • 通过ajax执行后期操作时如何克服CORS重定向问题?

    我可以通过外部登录表单中的 post 方法类型提交表单来登录 roundcube 实例 托管在另一台服务器上 我收到此错误 通过 ajax 签名时 XMLHttpRequest 无法加载https 192 168 0 7 mail http
  • 图像创建从jpeg() PHP

    我正在使用 imagecreatefromjpeg 函数合并两张图片 现在我面临的问题是 当我使用服务器中的图片时 它工作正常 而当我使用其他网站的图片时 它不起作用 例如 当我使用这个 PHP 文件时http coolfbapps in
  • PHP 文件服务脚本:下载不可靠?

    这篇文章最初是关于 ServerFault 的一个问题 https serverfault com questions 131156 user receiving partial downloads https serverfault co
  • 如何使用 PHP 获取列中的所有值?

    我一直在到处寻找这个问题 但仍然找不到解决方案 如何从 mySQL 列中获取所有值并将它们存储在数组中 例如 表名称 客户 列名称 ID 名称 行数 5 我想获取此表中所有 5 个名称的数组 我该如何去做呢 我正在使用 PHP 我试图 SE
  • 允许 iframe 跨域链接到目标父框架

    我有 2 个域 域 1 上的一个页面使用 iframe 加载域 2 中的内容 如何允许来自domain2 iframe 内 的链接在domain1 的完整父框架中打开 我一直在关注IE和w3c的新沙箱属性 http www w3 org T
  • 无法与站点通信以检查致命错误

    无法与站点通信以检查致命错误 因此 PHP 更改已恢复 您需要通过其他方式上传 PHP 文件更改 例如使用 SFTP 有什么解决办法 我正在 WordPress 中编辑头文件 遇到这个问题 尝试这个 我有同样的问题并决定调查一下 更改 wp
  • 禁用/启用用户访问/下载,但允许 php 编辑 - 使用 chown 和 chmod

    我想 move uploaded files到某个文件夹 比方说http localhost myproject protected 并且 PHP 应该能够rm mv cp 里面的一切protected 例如 启用 禁用用户对任何文件的访问
  • 如何移动 Zend_Layout 的“视图”

    通常它会是这样的结构 application modules somemodule views scripts index index phtml 我如何将其移动到 application templates somemodule temp
  • 如何获取 URL 中未知的 $_GET 值的数组?

    我正在使用一个在线购物车 它接受订购的商品并通过 URL 将其唯一 ID 传递到 process php 页面 所以 URL 看起来像这样 process php code 1 231 code 2 532 code 3 342 Anoth

随机推荐