2011-12-11 50 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

相关问题