2011-12-11 49 views
4

我想確保我正確理解並應用標記以避免CSRF?這是否需要完成以防止使用PHP和Ajax的CSRF?

在我的jQuery Ajax請求我的數據線:

data:{ Id:getParameterByName("id"), Token:"<?php echo $csfrToken; ?>" }, 

我處理該發佈的數據裏面的文件PHP檢查:

if (isset($_SESSION['TOKEN']) && $_SESSION['TOKEN'] == $_POST['Token']) { } 

還有什麼我需要一個ajax做請求。我所做的只是在包含ajax請求的頁面上創建一個標記。然後,我將創建的令牌發佈到我的ajax處理程序頁面,然後檢查以確保它們相同。還有什麼需要做的嗎?

+0

不,你把它覆蓋。有[更大的長度,你可以去](https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet),但從這裏開始收益遞減。 – Jon

+1

這是CSRF,而不是CSFR。 – BoltClock

+0

@jon - 非常感謝。 – Frankie

回答

1

看起來不錯,你做了什麼。 Zend框架的Zend_Form_Element_Hash就是這樣做的,這也適用於AJAX請求。

+0

謝謝。這很簡單。感覺像是因爲簡單而錯過了一些東西。 – Frankie

相關問題