1

CodeIgniter 给出错误“不允许您请求的操作”。当它未能通过 CSRF 检查时。据我了解,这意味着 POST 缺少表单中的隐藏令牌,证明没有进行攻击。

令牌是通过调用 CI form_open 函数自动生成的。

就我而言,我使用 Knockout 发布 ViewModel 的内容以进行保存,如下所示:

ko.utils.postJson($("form")[0], self.pages);

我在其他地方找到了简单地关闭特定页面的 CSRF 设置的解决方案,但这似乎不是一个好的解决方案。

大概是因为没有收到令牌,所以 postJson 调用没有提交现有的表单。有没有办法将所需的令牌与 JSON 数据一起提交,或者将 JSON 数据与现有表单一起提交?

4

1 回答 1

1

尝试使用form_open()form_close

所有有帮助的表单辅助函数。

或者:我认为这是来自时区差异,因为Security课程取决于散列时间。

于 2013-09-25T19:05:38.407 回答