簡體   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