【问题标题】:Can I use plone.protect 3.0 with Plone 4.3?我可以将 plone.protect 3.0 与 Plone 4.3 一起使用吗?
【发布时间】:2015-08-24 06:14:59
【问题描述】:

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

Plone 4.3 默认包含plone.protect 2.0

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

【问题讨论】:

  • 我们评估并启动了 plone.protect 3.0 到 Plone 4.2 的反向移植(以及 plone.app.imaging 的反向移植,参见github.com/plone/plone.app.imaging/pull/7),但老实说,我们停止了这方面的工作。 . 显示CSRF警告的地方太多了(尤其是ZMI)。

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


【解决方案1】:

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

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

JavaScript 会做几件事:

  1. 将身份验证器令牌添加到发回网站的所有表单中
  2. 将身份验证器令牌添加到所有可能写入数据库的管理 URL。例如,“编辑”按钮会写入数据库,因为在 Plone 4 中,AT Content Types 在数据库中创建了一个临时对象。此外,它还支持锁定。
  3. 向所有 ajax 请求添加身份验证器令牌。使用 https://api.jquery.com/ajaxSend/ 之类的内容添加令牌。

【讨论】:

    【解决方案2】:

    我只有一点经验,玩过 plone.protect 3.x 和 Plone 4.3.2,但没什么大不了的。

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

    这是我的笔记:

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

    First plone.protect.aut 3.0 默认处理每个 POST/GET 请求。 例如会话处理是一个写请求,所以你必须手动修复它,无论它在使用中!

    第二次在注解中写入数据(IAnnotation),默认也是受保护的,所以必须找到每个使用注解的地方(例如Portlets存储)并修复它。

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

    结论:

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

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

    【讨论】:

    • 抱歉,我在火车上,网速很慢,我在家时会更新答案。
    • 我写了所有 auto-csrf 的东西——是的,除非你想投入时间,否则不要这样做。 修复的最简单方法是添加一些 javascript,在登录时自动为您保护几乎所有内容,但不会处理 ZMI,然后它依赖于 javascript 工作。
    • @vangheem 请写下此评论作为答案!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2020-08-04
    • 2018-10-23
    • 2011-02-22
    相关资源
    最近更新 更多