跳转到主要内容

Plone 4的CSRF修复

项目描述

plone4.csrffixes

该软件包旨在将Plone 5中的自动CSRF实现回滚到Plone 4。

这之所以必要,是因为ZMI中存在许多CSRF问题,Zope2永远无法修复。

更多详细信息请参阅https://plone.org/security/hotfix/20151006

安装

Plone 4.3, 4.2, 4.1和4.0

plone4.csrffixes添加到eggs列表

eggs =
    ...
    plone4.csrffixes
    ...

为plone.protect, plone.keyring和plone.locking添加新的版本限制

[versions]
...
plone.keyring = 3.0.1
plone.locking = 2.0.10
plone.protect = 3.0.21
...

Plone 4.0和4.1

如果您的站点中尚未包含lxml,则此软件包在安装时将依赖于lxml并拉取它。

我们建议将lxml的版本限制为2.3.6。如果您使用lxml > 3的版本,则需要安装cssselect软件包。从版本1.0.4开始,我们在setup.py中要求cssselect,因此它将自动安装。

其他插件版本

为了防止某些写时读错误,这些版本限制已报告为可以升级到

Products.CMFQuickInstallerTool = 3.0.12
Products.PlonePAS = 5.0.4

有关更多版本提示,请参阅https://github.com/plone/plone4.csrffixes/issues/12

Robot框架

plone4.csrffixes通过z3c.autoinclude注册Plone实例,在测试中不加载。

要使其在测试中加载,您需要将plone4.csrffixes包含在您的包configure.zcml中

<include package="plone4.csrffixes" />

还需要其他帮助吗?

本包中的大多数补丁已移植到其原始位置。如果您使用Plone 4.3.8或更高版本,则只需添加plone.protect 3.0.21或更高版本即可。使用这些版本,您可能不再需要plone4.csrffixes

但添加plone4.csrffixes可能仍然有助于避免一些确认页面,因为它包含以下额外代码:

  • 它检查来源。如果上一个页面位于Plone站点内,则不会执行跨站检查。

  • 如果当前页面是ZMI页面(Zope管理界面),则所有链接都将重写以包含CSRF令牌。

  • 其他一些链接也会附加CSRF令牌,例如在操作下拉菜单(复制、删除等)中。

这些额外代码基本上对CSRF检查没有影响。但它允许一些写-读操作:在仅查看页面而不提交表单的情况下,已更改数据库中的内容。写-读操作不受欢迎,但在Plone 4中,这往往无法避免。一些核心代码和附加组件可能会这样做。

因此建议:

  1. 尝试使用Plone 4.3.8或更高版本,以及plone.protect 3.0.21或更高版本,但不使用plone4.csrffixes

  2. 如果这会导致太多不必要的确认页面,那么请再次添加plone4.csrffixes

变更日志

1.1.1 (2019-01-08)

错误修复

  • 更新了有关版本和本包必要性的文档。[maurits]

1.1 (2016-08-26)

新功能

  • 依赖于plone.protect 3.0.19或更高版本。这添加了protect.js,因此我们不再需要这样做。参见问题https://github.com/plone/plone.protect/issues/42 [maurits]

  • 将引用/来源回退提取到其自己的方法中,以便可以在子类化的转换中进行自定义。[lgraf]

错误修复

  • 将CHANGES和README的扩展名从txt更改为rst。[gforcada]

  • 包含带有代码约定的setup.cfg和.editorconfig文件:- isort的设置 - plone风格指南设置[loechel]

  • 应用代码约定[loechel]

1.0.9 (2015-11-18)

  • 修复了tinymce补丁中可能存在的问题[vangheem]

  • 为robot框架测试添加加载plone4.csrffixes的文档[lbrannon]

1.0.8 (2015-10-30)

  • 修复了重定向包含不可解析的响应的问题[vangheem]

  • 使plone锁操作安全[vangheem]

  • 在尝试操作之前检查选项[ale-rt]

  • 使用“application/javascript”媒体类型而不是过时的“text/javascript”。[hvelarde]

1.0.7(未发布)

  • 错误地跳过。

1.0.6 (2015-10-12)

  • 在站点引用匹配中添加尾随斜杠[vangheem]

1.0.5 (2015-10-08)

  • 处理由getToolByName在无效上下文中引起的TypeError[vangheem]

1.0.4 (2015-10-07)

  • 为错误地在Plone 4.0和4.1上安装lxml > 3的用户添加cssselect依赖[vangheem]

1.0.3 (2015-10-07)

  • 防止在检查OOBTree实例的非字符串键的提交时发生TypeError。修复#5 [vangheem]

  • 检查tinymceajax是否已经修补或未修补。这防止了JavaScript递归错误。[awello, cekk]

1.0.2 (2015-10-06)

  • 对是否需要为zmi重写URL进行更好的猜测[vangheem]

1.0.1 (2015-10-06)

  • 正确检查起源头[vangheem]

1.0.0 (2015-10-06)

  • 首次发布

项目详细信息


下载文件

下载适合您平台的应用程序。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

plone4.csrffixes-1.1.1.tar.gz (16.7 kB 查看哈希值)

上传于 源代码

由...

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页