Plone 4的CSRF修复
项目描述
plone4.csrffixes
该软件包旨在将Plone 5中的自动CSRF实现回滚到Plone 4。
这之所以必要,是因为ZMI中存在许多CSRF问题,Zope2永远无法修复。
安装
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中,这往往无法避免。一些核心代码和附加组件可能会这样做。
因此建议:
尝试使用Plone 4.3.8或更高版本,以及plone.protect 3.0.21或更高版本,但不使用plone4.csrffixes。
如果这会导致太多不必要的确认页面,那么请再次添加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)
首次发布