与Zope的安全子系统相关的工作区。
dm.zopepatches.securit的Python项目详细描述
这个程序包允许 web应用服务器zope的安全子系统中的弱点。 目前,它包含一个模块proxy。
代理
原则上,zope明确区分了可信代码 (来自文件系统,不能通过Web修改) 以及不受信任的代码(可能会在网络上被缠住)。 受信任的代码不受zope安全子系统的限制, 不受信任的代码对每个对象和方法访问都有权限检查。
不幸的是,有时,受信任的代码会自己执行 安全检查–甚至可以引发Unauthorized异常 当从其他受信任的代码调用时。proxy模块 注定要改变这种行为。 它使用zope的所谓proxy roles来设置 应用于内部安全检查。
模块定义上下文管理器proxy_roles(*roles), 通常使用如下:
>>> with proxy_roles(role1, role2, ...): >>> ... perform any operation[s] with internal security checks ...
这将设置要使用的代理角色role1,role2,…。 内部安全检查。
通常,角色是'Manager', 'Authenticated',但可以是任何角色。 请注意,代理角色将覆盖任何当前活动的用户角色。
历史记录
2.0
Make Python 3/Zope 4 compatible; drop support for Python 2.6 (and below)
New “context manager” interface.