我可以将plone.protect 3.0与Plone 4.3一起使用吗?

时间:2015-06-09 12:18:15

标签: forms security plone csrf plone-4.x

从版本3开始,plone.protect提供自动CSRF保护。

Plone 4.3默认包含plone.protect 2.0

我可以升级以开始在Plone 4.3中使用此功能吗?

2 个答案:

答案 0 :(得分:2)

我对它只有一点经验,并且使用了plone.protect 3.x和Plone 4.3.2,但没什么大不了的。

我也安装了很多插件,所以我不能说Plone本身或插件是否有问题。

以下是我的笔记:

是的,您可以启用它,但您的安装将停止工作。 所以...不,你不能: - )

首先,plone.protect.aut 3.0默认处理每个POST / GET请求。 例如,会话处理是一个写请求,因此您必须在使用它的任何地方手动修复它!

第二次在注释中写入数据(IAnnotation),默认情况下它也受到保护,因此必须找到每个使用注释的地方(例如Portlet存储)并修复它。

如果您的测试环境状况良好:-)您可以使用它,但开箱即用的Plone 4.3还没有准备好使用它。

<强>结论:

主要问题是GET请求,最终导致数据库更改。 我现在这是错的,但Plone 4.3和/或主要是插件有这种行为。

您将最终通过白名单扩展plone.protect.auto功能。

答案 1 :(得分:1)

我写了所有auto-csrf的东西。我建议不要在Plone 4中使用它,除非你想投入大量时间。

在Plone 5上使用它进行修复的最简单方法是添加一些javascript,在登录时自动为您保护几乎所有内容。这不会对ZMI进行处理,然后依赖于javascript工作。

JavaScript会做几件事:

  1. 将验证者令牌添加到回发到网站的所有表单
  2. 将验证者令牌添加到可能会写入数据库的所有管理员URL。例如,&#34;编辑&#34;按钮执行写入数据库,因为在Plone 4中,AT内容类型在数据库中生成临时对象。此外,它还使用锁定支持进行写入。
  3. 将验证者令牌添加到所有ajax请求。使用类似https://api.jquery.com/ajaxSend/的内容添加令牌。