Zope应用服务器/网络框架
项目描述
Zope是一个开源的Web应用服务器。
本文档提供了有关Zope的一些基本信息,并提供了到其他文档的链接。完整的文档可以在https://zope.readthedocs.io找到。
安装
请访问https://zope.readthedocs.io/en/latest/INSTALL.html以获取详细的安装指南。
许可证
Zope 使用 OSI 认证的 Zope 公共许可证(ZPL),版本 2.1。完整的许可证文本包含在 LICENSE.txt 文件中。
错误跟踪器
应通过 Zope 错误跟踪器在 https://github.com/zopefoundation/Zope/issues 提交错误报告。错误报告应包含有关如何重现错误的详细信息。
变更日志
以下是从 Zope 4.1.2 分支点开始,针对 Zope 5 所做的所有更改,包括 alpha 版本。
前一个版本,Zope 4 的更改日志在 https://github.com/zopefoundation/Zope/blob/4.x/CHANGES.rst
5.10 (2024-05-18)
通过文件扩展名识别 WebDAV 的页面模板。(#1212)
清理和修复安装文档。
官方支持 Python 3.12.1。(#1188)
修复指向使用方括号中的 IP-literal 提供的主机的 URL 的重定向。修复了 #1191。
引入装饰器 ZPublisher.zpublish,以通过 ZPublisher 显式控制发布。有关详细信息,请参阅 #1197。
修复不支持 rfc6266 的客户端的 Content-Disposition 文件名。 (#1198)
支持 Chameleon 结构 表达式类型。修复了 #1077。
解决 Products.CMFCore 和 Products.CMFPlone 设计错误(注册不可调用的构造函数)。有关详细信息,请参阅 #1202。
5.9 (2023-11-24)
支持 PUT 请求中的表单数据(遵循 multipart 示例)。修复了 #1182。
将 ZODB 连接信息分离到新的 ZODB 连接视图。
将缓存详细链接移动到单个数据库页面。
修复参考计数页面上的自动刷新功能。
更新 ZMI 中的 Ace 编辑器。
限制对静态 ZMI 资源的访问。
更新到依赖项的最新兼容版本。
添加 paste.filter_app_factory 入口点 content_length。此 WSGI 中间件组件可以与不遵循 PEP 3333 关于带有 Content-Length 标头的请求输入处理的建议的 WSGI 服务器一起使用。允许管理员修复 #1171。
官方支持 Python 3.12。
5.8.6 (2023-10-04)
确保 ZMI 面包屑中的对象标题被引号包围,以防止跨站脚本问题。
更新到依赖项的最新兼容版本。
基于为 CVE-2023-42458 开发的内联/附件逻辑,以正确的媒体类型为基础(忽略参数和空白,并转换为小写)。 (#1167)
5.8.5 (2023-09-21)
仅允许某些图像类型内联显示。对于其他图像,特别是 SVG 图像,强制下载。默认情况下,我们使用允许类型的列表。您可以通过设置 OS 环境变量 OFS_IMAGE_USE_DENYLIST=1 切换到拒绝类型的列表。您可以使用环境变量 ALLOWED_INLINE_MIMETYPES 覆盖允许列表,并使用 DISALLOWED_INLINE_MIMETYPES 覆盖拒绝列表。用逗号或空格分隔多个条目。此更改仅影响直接 URL 访问。 <img src="image.svg" /> 与之前的行为相同。(CVE-2023-42458)有关详细信息,请参阅 安全公告。)
将ZMI框架源逻辑限制为仅允许本地站点源。由Miguel Segovia Gil报告的问题。
在SVG文件属性中添加了图像尺寸 #1146。
修复了错误请求的访问日志中没有用户名的问题,请参阅问题 #1155。
更新到依赖项的最新兼容版本。
添加了对Python 3.12rc3的初步支持。
5.8.4 (2023-09-06)
禁用一个
ZCatalog
(更准确地说:Products.PluginIndexes
)性能测试,该测试偶尔在GitHub上失败。有关详细信息,请参阅 #1136。恢复从
App.Extensions.getObject()
返回的对象的代码对象的文件名。在4.0a6中丢失了此功能。更新到依赖项的最新兼容版本。
添加了对Python 3.12rc1的初步支持。
使
mapply
具有__signature__
感知能力。这允许通过设置包装器上的__signature__
的装饰器来发布方法,以指定要使用的签名。有关详细信息,请参阅 #1134。注意:mapply
仍然不支持关键字参数、可变位置参数和可变关键字参数。使Zope的拒绝服务保护参数可配置 #1141。
将
RestrictedPython
更新到版本6.2以减轻安全问题。(CVE-2023-41039)将
AccessControl
更新到版本6.2以减轻安全问题。(CVE-2023-41050)
5.8.3 (2023-06-15)
5.8.2 (2023-05-22)
允许
ZPublisher
同时处理查询字符串和请求体;查询字符串中的请求参数在请求属性form
(一个字典)中提供,请求体可以通过请求键BODY
(一个字节对象)或BODYFILE
(一个类似文件的对象)访问。修复了 #1122。支持WSGI服务器访问请求的
BODY
键,这些服务器传递不可寻址的请求体(例如,例如,Gunicorn)。修复了 #1125。不要在传递查询字符串和
Content-Type
标题的GET请求中中断。有关详细信息,请参阅 #1117。实现CodeQL扫描的建议代码更改。
为一些Sphinx文档添加了日语翻译(#1109)
更新到依赖项的最新兼容版本。
更新zope.ini.in skel以支持使用反斜杠的日志路径。(#1106)
5.8.1 (2023-03-17)
清理并修复了tainting修复 #1095
用
multipart
替换cgi.FieldStorage
,避免Python 3.11弃用的cgi
模块。用真实的
binary
属性标记二进制转换器。修复了编码处理和
:bytes
转换器。请参阅 #1094。
清理和重构依赖配置文件。
更新到依赖项的最新兼容版本。
支持内容类型
application/x-www-form-urlencoded
的(非标准)charset
参数。这是必需的(例如,对于Plone),因为jquery
构造的内容类型为`application/x-www-form-urlencoded; charset=utf-8`
。有关详细信息,请参阅 plone/buildout.coredev#844。
5.8 (2023-01-10)
只有在异常视图中有内容时,才将响应头Content-Type设置为text/html。 (#1089)
停止支持Python 3.6,因为它已经处于停用状态一段时间了。
更新到依赖项的最新兼容版本。
修复了在__setstate__中修改实例的类的历史页面,例如Products.PythonScripts.PythonScript实例。请参阅launchpad问题735999。
5.7.3 (2022-12-19)
由于默认内容类型已更改,明确将App.Dialogs.MessageDialog和异常视图作为HTML提供服务。请参阅#1075。
5.7.2 (2022-12-17)
修复了由于从PR https://github.com/zopefoundation/Zope/pull/1075更改默认内容类型而导致的一些损坏的ZMI页面(#1078)。
更新到依赖项的最新兼容版本。
5.7.1 (2022-12-16)
如果没有明确设置,则将发布默认的Content-Type头设置为text/plain以防止跨站脚本攻击。同时移除为返回两项元组的发布方法构造HTML页面的旧行为。
更新到依赖项的最新兼容版本。
5.7 (2022-11-17)
5.6 (2022-09-09)
使Products.PageTemplate引擎与Chameleon 3.10兼容。
更新到依赖项的最新兼容版本。
开始工作于Python 3.11支持,它将在以后的版本中到来。
修复cookie路径参数处理:如果cookie路径值包含%,则假定它是一个完整的引号并按原样使用;如果它只包含在URL路径中允许的字符(未引号),则按原样使用;否则,使用Python的urllib.parse.quote进行引号处理(#1052)。
5.5.2 (2022-06-28)
5.5.1 (2022-04-05)
更新到依赖项的最新兼容版本。
将 waitress 升级到版本 2.1.1 以缓解该软件包中的漏洞。由于 waitress 不再支持 Python 3.6,因此不建议在 Python 3.6 上运行 Zope,即使它仍然支持 Python 3.6。 由于此安全问题,Python 3.6 的支持现在已正式弃用。它将在 Zope 版本 5.7 中被移除。
现在要在 Zope 项目中运行 bin/buildout,需要 zc.buildout >= 2.13.7 或 zc.buildout >= 3.0.0b1。
5.5 (2022-03-10)
5.4 (2022-01-09)
审查和修复代码和文档中的所有超链接
由于持续存在的域名所有权问题,将 zope.org 的引用更改为 zope.dev。由于 zope.dev 由 Plone 基金会拥有,因此免受干扰。XML/ZCML 命名空间 URL 保持不变。
移除所有完全无效的链接,例如旧的 zope.org 收藏者问题跟踪器。
更新所有其他杂项链接,使其重新工作或删除过时信息。
改进默认 WebDAV PUT 工厂的类型猜测 (#997)
启用 WebDAV PUT 工厂更改新创建对象的 ID (#997)
修复 App.version_txt.getZopeVersion 中的潜在竞争条件 (#999)
不要对添加 DTML 文档/方法的文件上传字段进行强制转换。这使得添加表单在 ZPublisher 转换代码更改后再次工作。
从更多代码中删除已弃用的 ulines、utext、utokens、ustring。在属性表单中,显示弃用警告。
添加函数 ZPublisher.utils.fix_properties。您可以调用此函数以修复行属性,使其仅包含字符串,而不是字节。它还用它们的非 Unicode 变体替换了已弃用的属性类型 ulines、utext、utoken 和 ustring。(#987)
添加对 Python 3.10 的支持。
更新到依赖项的最新兼容版本。
5.3 (2021-07-31)
由于底层问题已修复,恢复使用 Products.TemporaryFolder 的简单会话。(#985)
更新 AccessControl 版本固定,以修复远程代码执行问题(见 AccessControl 安全警告 GHSA-qcx9-j53g-ccgf)
防止 AccessControl 中移动导入的 DeprecationWarnings
确保“Manager”用户始终可以修改代理角色(参见 Products.PythonScripts#50)
弃用“unicode”转换器的使用。此外,field2lines 的行为现在与其他转换器保持一致,并返回字符串列表而不是字节列表。(#962)
更新到依赖项的最新兼容版本。
5.2.1 (2021-06-08)
防止通过授权的 Python 模块在 TAL 表达式中进行未经授权的遍历
更新 Zope 标志。(#973)
更新到依赖项的最新兼容版本。
5.2 (2021-05-21)
防止在 TAL 表达式中遍历以 _ 开头的名称,并修复 chameleon.tales 表达式引擎的路径表达式。
为事务撤消表单提供更友好的 ZMI 错误消息(#964)
更新/修复了Zope开发者指南中的投票应用程序教程(#958)
更新依赖项到最新版本。
依赖于 zope.datetime 以提供函数 iso8601_date、rfc850_date 和 rfc1123_date,这些函数原本位于 App.Common 中,同时保留向后兼容的导入。
不兼容的更改
除了 field2bytes 外,字段转换器不再尝试读取文件对象(#558)
5.1.2 (2021-03-02)
5.1.1 (2021-02-10)
5.1 (2020-11-12)
不兼容的更改
从TALES路径表达式中排除 chameleon 的插值语法中特殊字符(即 ${}),以减少 chameleon 插值启发式算法的失败风险(#925)
功能
恢复ZMI 调试信息 控制面板页面(#898)
修复
修复错误日志中pre元素的ZMI可见性(Products.SiteErrorLog#26)
修复页面模板重复变量的 length(#913)
将 isort 更新到版本 5。(#892)
更新依赖项到最新版本。
5.0 (2020-10-08)
不兼容的更改
停止支持Python 3.5,因为它即将停止支持。(#841)
功能
支持HTTP头编码(#905)
添加对Python 3.9的支持。
添加新接口 Products.PageTemplates.interfaces.IZopeAwareEngine。它可以作为适配器注册的“提供”使用,将非 Zope tales引擎适配到 Zope 页面模板使用的引擎(#864)。目前,适配器仅在模板使用 chameleon 渲染时使用;对于 zope.pagetemplate,引擎按原样使用 - 这可能在将来改变。
允许(某些)内置函数作为(TALES)路径表达式的第一个元素:在不信任的上下文中,允许来自 AccessControl.safe_builtins 的内置函数;在信任的上下文中,除了允许所有Python内置函数外(并具有优先权)。
再次支持预定义的 attrs 模板变量(只要 chameleon 允许)。(#860)
使用 Chameleon(>= 3.7.2)配置,以获得更好的错误信息,这些错误在模板执行期间被检测到(#837)。
修复
提供更有意义的 OFS.SimpleItem.Item_w__name__.id,以避免使用已弃用的直接 id 访问带来的错误(例如,参见 #903)。
更新到 zope.interface > 5.1.0 以修复内存泄漏。
修复导出非拉丁-1兼容命名的文件(参见 #890)
避免无请求的翻译(参见 #876)
使“chameleon-zope上下文包装”更忠实。(参见 #873)
让“Unicode冲突解决”适用于所有模板(而不仅仅是 ZopePageTemplate)。(参见 #872)
使“Unicode冲突解决”可用于使用 chameleon 渲染的模板(参见 Products.CMFPlone#3145)。
改进“Zope Book”中“上下文(CONTEXTS)”的文档。
减少复制/粘贴剪贴板cookie的cookie大小(参见 #854)
修复页面模板中 default 关键字的处理(参见 #846)
修复包版本解析并正确显示ZMI中的主要版本
改进 debugError 方法的稳健性。(参见 #829)
修复 ZTUtils.LazyFilter 无法在受限Python脚本中导入的问题。(参见 #901)
其他更改
通过 pre-commit 添加 pyupgrade(参见 #859)
添加 tal:switch 测试
5.0a2(2020-04-24)
错误修复
为“管理WebDAV锁定”权限固定 AccessControl 4.2
修复注册视图上的 HEAD 请求(参见 #816)
改进 chameleon –> zope.tales 上下文包装(支持模板变量注入)(参见 #812)。
要求 zope.tales>=5.0.2
通过完全尊重由 PageTemplate.pt_getEngine 返回的引擎(参见 #717)修复问题717。引擎还决定是否使用 zope.tales(引擎是 zope.pagetemplate.engine.ZopeBaseEngine 的实例)或 chameleon.tales(否则)TALES表达式。
修复了 displayname WebDAV属性的编码问题(参见 #797)
修复了 manage_DAVget 的后备实现(参见 #799)
其他更改
更新依赖项到最新版本。
5.0a1(2020-02-28)
不兼容的更改
停止支持Python 2.7,即Zope 5无法在Python 2上运行。如果您仍在使用Python 2.7,请首先升级到最新的Zope 4版本,然后迁移到Python 3,再切换到Zope 5。(参见 #692)
移除所有标记为将在Zope 5中删除的向后兼容代码(参见 #478)
停止支持使用ZServer运行Zope,因为它仅适用于Python 2。(参见 #592)
移除已弃用的请求方法 postProcessInputs。(参见 #782)
移除已弃用的模块 ZPublisher.maybe_lock。(参见 #758)
从产品上下文中删除帮助系统方法。(#756)
删除更多已弃用代码。(#757)
更新 Zope 5 的 Zope 文档源。(#659)
新功能
在 Zope 中恢复 WebDAV 支持。(#744)
独立于 ZServer 启用 WebDAV 支持。(#787)
清理并净化用于 WebDAV 相关方法的权限。
添加 wsgi.file_wrapper 实现 https://pythonlang.cn/dev/peps/pep-0333/#optional-platform-specific-file-handling (#719)
错误修复
仅对具有 read 方法的响应体使用 wsgi.file_wrapper。(#763)
改进 HTTPS 请求的检测。(#680)
修复 ZMI 中的几个链接,使其遵守虚拟主机。(#788)
修复 manage_main 上的排序链接 URL。(#748)
添加更多测试,以确保所有 __str__ 实现返回原生字符串。(#692)
通过强制页面模板引擎修复长期存在的测试错误。在 Products.PageTemplates 中的许多测试使用了旧的 Zope 页面模板引擎,因为在设置期间没有注册正确的引擎。
在关闭时关闭打开的数据库(因为 ZServer 已经这样做)。(#740)
当参数 path 不是它可以处理的东西时,方法 unrestrictedTraverse 会引发错误。(#674)
改进 ZMI 安全选项卡在高数量角色时的可用性。(#730)
一些小的 ZMI 渲染修复。(#729)
修复在 ZMI 中使用数据库最小化时出现的错误。(#726)
修复 UnauthorizedBinding 中的 __getattr__ 签名。(#703)
修复在 Python 3 中 VirtualHostMonster 无法设置映射的问题。(#708)
降低在 ZMI 查找选项卡中获取内置名称的风险。(#712)
恢复错误删除的 Image 对象的 Properties ZMI 选项卡。(#706)
修复 OFS.Image.File.__str__ 的 Pdata 内容。(#711)
使用 Zope 用户身份验证在 wsgi 环境中设置 REMOTE_USER。(#713)
将 Paste 作为 extras_require 依赖项添加,以便在安装时使用 pip 和 constraints.txt 拉入 Paste,以防止启动错误。这需要在 egg 规范中添加 [wsgi] 额外内容。(#734)
其他更改
将重试请求延迟处理从 supports_retry 中移出。(#474)
改进 Zope 错误日志服务的文档。
项目详情
下载文件
下载适合您平台的文件。如果您不确定该选择哪个,请了解更多关于安装包的信息。
源代码分发
构建分发
zope-5.10.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3b9c759d8626f583b84c8c0216769c3c9753b982c8c88c27793cfcd282e85da8 |
|
MD5 | 77d99708cf7ac35ef2dff52a9ce4b9c7 |
|
BLAKE2b-256 | 712639d37d2deab5df8f24b0fd4a3298ca5dd6be16f45c8a6d69bbdd285bb7dd |
Zope-5.10-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7bcb5b23ad8b73b78a8fea8b2eed763b8b35e9b6ebe9b66a7c9d18daafbb2804 |
|
MD5 | 5604cd78e921caa35090980f82e3836b |
|
BLAKE2b-256 | f448e0477d0a7e9b3a7ca0cda61524ee28b1f26473efc55e6cd2a45b05343cd9 |