繁体   English   中英

ajax的CSRF令牌

[英]CSRF token for ajax

使用ajax提交的表单有问题。 我用Zend Framework做我的表单。 有些是真实的形式,所以我添加了一个Hash元素。 其他用于小型操作(如upvote和downvote),所以我用链接做。

我的问题是我需要使用ajax,尤其是小型表单(链接)。 我看到很多问题,但没有足够的全面解决问题。 有关如何通过ajax提交表单时如何使csrf令牌顺利运行的详细说明? 最好使用Zend Framework,但一般的PHP答案也会有所帮助。

您不需要CSRF令牌。 您的情况使用HTTP_X_REQUESTED_WITH方法(参见此处 )。

对于那些访问此页面的人来说,可以让csrf使用ajax。

在控制器中,您需要使用通过在操作结束之前添加此权限来重新生成哈希:

$形式 - >散列> initCsrfToken();

$ this-> view-> csrfhash = $ form-> hash-> getValue();

在用于执行ajax的js文件中,您将需要使用选择器来查找创建时的哈希实例(因此对于jquery:

$(#哈希).replaceWith(csrfhash); 实际上,如果你使用replaceWith,你将替换整个隐藏的csrf元素,包括id和name。 但那部分应该相当容易。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM