首页 > 解决方案 > 假设 https 用于两者,PHP 会话是否比 ajax 调用更安全?

问题描述

我正在为 Web 应用程序编写登录系统。目前,我创建一个 php 会话并在任何 HTML 或其他输出之前生成一个存储在 PHP 会话变量中的令牌。该令牌通过简单的嵌入式 PHP 回显从 php 会话中以 JavaScript 读取,并简要存储在 javascript 变量中。然后在所有 ajax 请求中发送它,如果在 ajax 请求中发送的令牌与存储在 PHP 会话中的令牌不匹配,则中止 ajax 调用。另一种方法是对 php 脚本进行 ajax 调用 DOMContentLoaded,生成令牌,将哈希存储为 mysql,然后通过 ajax 响应返回未哈希的令牌并将其存储在 JavaScript 变量中。在同一页面内的后续 ajax 调用中,我每次都可以返回一个新令牌以用于后续 ajax 调用。

我的问题是,将令牌主要存储在 PHP 会话中但仍然通过 php echo 将其读取到 JavaScript 变量中是否比通过 ajax 返回令牌并将其存储在 JavaScript 变量中更安全。ajax 方法的优点是允许在每次 ajax 调用时生成并返回一个新令牌。

我尝试在 ajax 调用期间更新 php 会话中的令牌,但是使用会话变量的 PHP 回显到 JavaScript 变量的客户端代码没有收到在 ajax 调用期间创建的新值,因为客户端页面尚未重新加载. 如果令牌存储在 mysql 中并通过 ajax 返回给客户端,这不是问题。

标签: phpsessionsession-cookies

解决方案


推荐阅读