1

我制作了 Sencha 前端应用程序,它的后端是用 PHP/Joomla 完成的。Sencha JS 应用程序发送的数据使用带有 Joomla 框架的 PHP 进行验证和保存。

我如何在 Sencha JS 应用程序中创建 CSRF 令牌并在 PHP/Joomla 代码上验证它

4

1 回答 1

0

Joomla 表单受令牌保护,每个新帖子都会检查该令牌。令牌只是一个隐藏字段,您可以将其插入到表单中

echo JHtml::_('form.token');

这是在控制器中检查的,例如

JSession::checkToken('post') or jexit(JText::_('JInvalid_Token'));

这适用于标准获取/发布交互。但是,如果您要使用 Ajax,则需要一种在每次请求发出后检索新令牌的方法:

您的控制器将不得不返回

JSession::getFormToken() 

到前端,它应该在下一次调用中包含它。

注意:确保 ajax 响应没有被缓存:当页面缓存正确处理插入第一个代码片段的隐藏令牌输入时,您必须注意更新任何其他事件。

于 2013-05-14T07:21:20.683 回答