从版本 3 开始,plone.protect提供自动CSRF保护。
默认情况下,Plone 4.3 包括plone.protect 2.0。
我可以升级以开始在 Plone 4.3 中使用此功能吗?
我对它只有一点经验,玩过 plone.protect 3.x 和 Plone 4.3.2,但没什么大不了的。
我还安装了很多插件,所以我不能说是 Plone 本身有问题,还是插件有问题。
这是我的笔记:
是的,您可以启用它,但您的安装将停止工作。所以......不,你不能:-)
首先 plone.protect.aut 3.0 默认处理每个 POST/GET 请求。例如会话处理是一个写请求,所以你必须在任何地方手动修复它!
第二次在注解中写入数据(IAnnotation),默认情况下也是受保护的,所以必须找到每个使用注解的地方(例如Portlets存储)并修复它。
如果您的测试环境状况良好 :-) 您会得到它的工作,但开箱即用的 Plone 4.3 还没有准备好使用它。
结论:
主要问题是 GET 请求,最终导致数据库更改。我现在这是错误的,但 Plone 4.3 和/或主要是插件有这种行为。
您最终将通过白名单扩展 plone.protect.auto 功能。
我写了所有 auto-csrf 的东西。我建议不要在 Plone 4 中使用它,除非你想投入大量时间。
在 Plone 5 上修复使用它的最简单方法是添加一些 javascript,在登录时自动为您保护几乎所有内容。这不会处理 ZMI,然后它依赖于 javascript 工作。
JavaScript 会做几件事: