我制作了 Sencha 前端应用程序,它的后端是用 PHP/Joomla 完成的。Sencha JS 应用程序发送的数据使用带有 Joomla 框架的 PHP 进行验证和保存。
我如何在 Sencha JS 应用程序中创建 CSRF 令牌并在 PHP/Joomla 代码上验证它
我制作了 Sencha 前端应用程序,它的后端是用 PHP/Joomla 完成的。Sencha JS 应用程序发送的数据使用带有 Joomla 框架的 PHP 进行验证和保存。
我如何在 Sencha JS 应用程序中创建 CSRF 令牌并在 PHP/Joomla 代码上验证它
Joomla 表单受令牌保护,每个新帖子都会检查该令牌。令牌只是一个隐藏字段,您可以将其插入到表单中
echo JHtml::_('form.token');
这是在控制器中检查的,例如
JSession::checkToken('post') or jexit(JText::_('JInvalid_Token'));
这适用于标准获取/发布交互。但是,如果您要使用 Ajax,则需要一种在每次请求发出后检索新令牌的方法:
您的控制器将不得不返回
JSession::getFormToken()
到前端,它应该在下一次调用中包含它。
注意:确保 ajax 响应没有被缓存:当页面缓存正确处理插入第一个代码片段的隐藏令牌输入时,您必须注意更新任何其他事件。