在Play Framework中,我们可以应用全局CSRF检查
@SuppressWarnings({ "rawtypes", "unchecked" }) @Override publicClass [] filters() { Class[] filters = { CSRFFilter.class }; return filters; }
在大多数情况下都没问题.但我想设置指向我们网站的Facebook Canvas页面.事情是Facebook发送POST请求到我们的网站,它被CSRF检查阻止.它总是返回"无效的CSRF令牌"
因此,我想在某些操作中有选择地禁用CSRF检查,例如www.ourwebsite.com/canvas
这可行吗?
我创建了一篇关于如何做到这一点的博客文章,请看这里:
http://dominikdorn.com/2014/07/playframework-2-3-global-csrf-protection-disable-csrf-selectively/
2017年更新:从PlayFramework 2.6开始,现在包含在框架内:https://www.playframework.com/documentation/2.6.x/JavaCsrf#applying-a-global-csrf-filter