gpt4 book ai didi

python - 如何允许通过 Web Controller Python 脚本导入其他受限模块? Plone 4

转载 作者:太空宇宙 更新时间:2023-11-04 10:44:26 24 4
gpt4 key购买 nike

我有一个 Controller 页面模板和一个处理操作的 Controller Python 脚本。很高兴我能够通过网络添加此表单和操作脚本,这样我就不必在每次对代码进行轻微更改时构建并重新启动 Plone 实例。问题是我的 python 脚本应该将内容对象列表构建为数组,然后通过将 JSON 数组作为发送到远程服务器的 REQUEST 正文来与另一台服务器共享对象。我有一个名为 arrayOfObjects 的数组,它应该看起来像“[{'param1':val1, 'param2':val2},{'param1':val3, 'param2':val4}]”。

import json

...other stuff...

sJSON = json.dumps( arrayOfObjects )

上面的代码可以在标准的 python 解释器中运行,但是 Plone 限制在 ZMI 中管理的 through-the-web Python 脚本使用许多模块。这是一个很好的安全功能,但是我想继续通过 Web 开发脚本,并在完成后将其移动到我的附加产品中的文件系统存储中。我听说 AccessControl 包的 allow_module 功能应该启用导入,但听起来好像您仍然可能必须在文件系统上使用它。有什么方法可以通过 Web 编辑 Python 脚本和对我正在构建的功能至关重要的 JSON 模块吗?提前感谢您提供任何信息!

PS- 权限不足屏幕是我在导入 json 模块时看到的(预期行为 - 没有错误)

最佳答案

在常规 python 代码中的某处,添加以下内容:

from AccessControl import allow_module
allow_module('json')

将模块列入白名单。是的,出于明显的安全原因,这必须从基于文件系统的 Python 运行。

关于python - 如何允许通过 Web Controller Python 脚本导入其他受限模块? Plone 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18389606/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com