Javascript 如何使用jQuery在每个Ajax请求上重新生成会话令牌?

Javascript 如何使用jQuery在每个Ajax请求上重新生成会话令牌?,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我有一个PHP应用程序,其中包含一些jQuery和Ajax特性。我想知道,如何在每次Ajax请求时(不加载页面)重新生成会话令牌(我正在发送会话令牌以验证Ajax请求) 我在页面上有更多运行多个Ajax查询的元素,但是现在它们都得到了相同的标记。因此,如果有人拥有tokey,我想他们可以从另一个表单提交伪造的请求。在客户端生成令牌毫无意义。你不能相信来自客户端的任何东西,因为你不知道是你的客户端软件发送了请求,还是恶意的。 您必须创建尽可能多的令牌以满足ajax请求,并在每次响应中返回一个新令牌

我有一个PHP应用程序,其中包含一些jQuery和Ajax特性。我想知道,如何在每次Ajax请求时(不加载页面)重新生成会话令牌(我正在发送会话令牌以验证Ajax请求)


我在页面上有更多运行多个Ajax查询的元素,但是现在它们都得到了相同的标记。因此,如果有人拥有tokey,我想他们可以从另一个表单提交伪造的请求。

在客户端生成令牌毫无意义。你不能相信来自客户端的任何东西,因为你不知道是你的客户端软件发送了请求,还是恶意的。
您必须创建尽可能多的令牌以满足ajax请求,并在每次响应中返回一个新令牌。

您应该在服务器端为每个用户或每个会话生成一个CSRF令牌。您可以将其存储在数据库或会话中。您应该将该令牌发送给您的客户机,并使用ajax请求等待它返回。它将一直工作,直到你的网站没有XSS漏洞


顺便说一句,保护应用程序安全的第一步是使用HTTPS协议…

听起来像是一个错误,我从来没有说过我打算在客户端生成令牌。当然,这是创建会话的唯一方法。对不起,我误解了。那么,为什么不为页面中的每个ajax调用生成一个不同的令牌,并在每次进行ajax调用时提供一个新的令牌来替换它呢?这意味着您在服务器端的会话中存储令牌列表。