gpt4 book ai didi

php - 发送 CSRF token 到 JavaScript

转载 作者:行者123 更新时间:2023-11-28 00:38:48 26 4
gpt4 key购买 nike

假设我在 session 中的服务器端维护反 CSRF token

如果我的表单生成是动态的(即表单将在 javascript 执行某些操作后创建),我该如何将 token 传递给客户端应用程序

有没有办法将 token 传递给 JavaScript,以便我可以在表单中注入(inject) token 。

我发现的一种工作方法是将包含 token 的 cookie 发送到浏览器,然后由 javascript 提取该 token 。

有什么建议吗?

最佳答案

我建议从安全 token 开始,然后根据动态表单创建通过 JavaScript 对其进行改进。

例如:

<input type="hidden" name="csrftoken" value="hgdillksdbgjksdbkvbskb">

页面加载时在服务器端生成“value”参数。

然后你就有一个像这样的脚本:

csrftoken = document.mainform.csrftoken.value;
# Do something with the CSRF token, like add dynamic values, like sha256(csrftoken + "dynamicvalue");
document.mainform.csrftoken.value = csrftoken;

这样做的主要思想是防止即使他们设法获得允许对手读取 JavaScript 代码的漏洞,他们仍然无法组成有效的 CSRF token ,因为他们无法读取原始的“csrftoken”页面加载时表单内的值。这也可以用于“链接”AJAX 请求,就像您在页面加载期间从 token X 开始一样。然后使用 JavaScript 将其转换为 Y,并在 AJAX 请求中发送。在下一个AJAX请求中,您可以使用Y作为算法中的基础,创建Z,并将其发送到服务器。攻击者无法访问 X,因此他们也无法访问 Y 和 Z,即使他们能够以某种方式利用正在运行的 JavaScript 代码来暴露自己。

请注意,由于同源策略,对手无法读取页面内容。但 Javascript 可能包含一些漏洞,可以读取实际运行的 JavaScript 代码。目前还没有此类漏洞,但安全总比后悔好。

关于php - 发送 CSRF token 到 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28175522/

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