php - PHP session 变量有多安全?

标签 php security

我有一个登录脚本,用于根据“用户”表中的数据验证用户名/密码。此外,我有一个“角色”表,用于指定给定用户的访问级别。假设我使用的是安全登录脚本,在成功登录后简单地执行附加查询是否存在任何安全漏洞,针对“角色”表发现用户的授权级别并将其存储到 session 变量中?然后我的想法是,在具有混合权限的任何页面上,我可以简单地查询 session 变量以发现登录用户的授权级别。

谢谢。

最佳答案

session 比 cookie 安全得多。但是仍然有可能窃取 session ,因此黑客可以完全访问该 session 中的任何内容。避免这种情况的一些方法是 IP 检查(效果很好,但 fi 非常低,因此本身不可靠),以及使用随机数。通常使用 nonce,您有一个每页的“ token ”,以便每个页面检查最后一页的 nonce 是否与它存储的内容匹配。

在任一安全检查中,都会失去可用性。如果您进行 IP 检查并且用户位于 Intranet 防火墙(或导致此情况的任何其他情况)后面,该防火墙没有为该用户保留稳定的 IP,则他们每次丢失 IP 时都必须重新进行身份验证。使用随机数,您会得到“点击返回会导致此页面中断”的有趣情况。

但是使用 cookie,黑客可以通过使用相当简单的 XSS 技术来窃取 session 。如果您将用户的 session ID 存储为 cookie,他们也容易受到此攻击。因此,即使只有可以进行服务器级黑客攻击的人才能进入 session (如果您的服务器是安全的,这需要更复杂的方法并且通常需要一定数量的权限),您仍然需要一些额外级别的验证根据每个脚本请求。您不应该同时使用 cookie 和 AJAX,因为如果该 cookie 被盗,这会使您更容易完全进入城镇,因为您的 ajax 请求可能不会对每个请求进行安全检查。例如,如果页面使用随机数,但从不重新加载页面,则脚本可能只检查该匹配。如果 cookie 持有身份验证方法,我现在可以使用偷来的 cookie 和 AJAX 漏洞去镇上作恶。

关于php - PHP session 变量有多安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1181105/

相关文章:

java - 如何在android studio中伪装或加密gmail发件人的硬编码密码

php - 多站点网站身份验证,例如 mint.com

php - 如何将 Javascript 函数的返回值捕获到 PHP 变量中?

php - 通常在 ExtJS 应用程序上转义 HTML?

java - 如何在java中加载PKCS7(.p7b)文件

javascript - 了解 Node.js 服务器目录结构和安全性

php - 创建一个报告,显示开始日期和结束日期之间每一天的具体统计数据

javascript - 如何在 Ajax 响应后刷新特定的 div?

javascript - ASP.NET 阻止用户访问未捆绑的脚本

javascript - 保护 JS 客户端 SDK