【发布时间】:2013-09-07 14:57:00
【问题描述】:
我有一个 codeigniter 应用程序,它运行良好。我创建了一个 facebook 画布应用程序,并尝试加载由 codeigniter 生成的页面。它没有用。我看到了可怕的—— “您请求的操作是不允许的”。 只是为了确保我的 facebook 应用程序设置正确,我尝试使用来自另一个站点的页面,并且它有效。
所以开始搜索可能的问题,我发现这是因为cornfig设置中的CSRF protection=TRUE。所以我只是关闭了 CSRF 保护,看看是否可行。 然后,它起作用了,我实际上可以通过 Facebook Canvas 应用程序加载 codeigniter 生成的页面(虽然是沙盒模式..)
有人建议如果我们为 csrf 令牌硬编码隐藏字段(而不是依赖于 form_open() 函数)我们可以避免这个规则,并且按照这个逻辑,如果我们有一个根本没有表单的页面,应该工作正常。而且我什至无法加载没有表单的页面。
而且我没有在任何地方使用 AJAX。
我正在使用 CI 2.1.3。
一个相关链接 - http://ellislab.com/forums/viewthread/228160/#1038448 虽然 Stackoverflow 和其他论坛上有很多类似的问题,但我找不到满意的答案。
如果我只看到 apache 日志,我真的觉得关闭 CSRF 保护不是一个好主意。
那么如何在不关闭 CSRF 保护的情况下让 codeignter 生成的页面出现在 facebook canvas 应用中?
任何指针都会很有用。谢谢你的时间。
【问题讨论】:
标签: php facebook codeigniter facebook-apps csrf