首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CodeIgniter的CSRF令牌问题

CodeIgniter的CSRF令牌问题
EN

Stack Overflow用户
提问于 2011-03-20 14:21:58
回答 2查看 9.1K关注 0票数 8

我在CodeIgniter中遇到了一个非常奇怪的CSRF保护问题。我已经确保使用form_open启动表单,在配置文件中将csrf_protection设置为true,并且还确保隐藏的csrf name和value字段与csrf cookie匹配,如下所示:http://d.pr/3cfB

发生的情况是,当我提交表单时,我得到“遇到错误。您请求的操作不被允许”。错误,但不确定原因。当我关闭csrf_protection时,表单工作正常。

更奇怪的是,我使用tank_auth库进行身份验证,它还使用form_open作为登录表单。我做了检查,以确保当csrf_protection打开时,登录表单中有一个隐藏的csrf字段,并且我能够提交表单并顺利登录。

有没有想过我能做些什么来调试这个问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-21 01:14:34

我找到问题了。在我的一个定制库中,我使用了parent::_sanitize_globals(),这显然是导致错误的原因。我在某处读到,如果我打开了xss过滤,我就不需要进行全局清理。

票数 1
EN

Stack Overflow用户

发布于 2011-03-20 22:44:30

首先,会话类需要名为“csrf_ token _name”的令牌,而不是名为“csrf_salemarked_token$...”的令牌。

这篇博文介绍了AJAX with CSRF Protection in Codeigniter 2.0

Tank_auth从隐藏的输入表单域获取令牌,而不是cookie。AJAX请求需要从隐藏字段获取令牌(如果可用),或者从cookie (如果没有表单)获取。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5367096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档