Zope遗留代码 - 访问DA功能

时间:2018-02-22 15:49:32

标签: python zope ingres

我们正在使用旧的zope版本(2.10.6-final,python 2.4.5)并使用名为ZEIngresDA的数据库适配器。我们已建立连接,测试功能显示它完全正常,可以连接和运行查询。

我的工作是改变查询实际执行的方式,以便他们正确地参数化变量以防止sql注入。话虽如此,我遇到了一个安全问题,我希望有人可以提供帮助。

connection = container.util.ZEIngresDAName()
#returning connection at this point reveals it to be of type ZEIngresDA.db.DA,
#which is the object we're looking for.
connection.query("SELECT * from data WHERE column='%s';", ('val1',))
#query is a function that is included in class DA, functions not in DA throw errors.

我们遇到了这个问题。测试此脚本会显示一个登录提示,登录后会立即再次出现。我认识到这可能是某种类型的安全设置,但我一直无法在网上找到关于这个问题的任何内容,尽管这个旧的zope文档在网上并不是很壮观。如果您觉得这听起来很熟悉或有任何想法,请告诉我。

1 个答案:

答案 0 :(得分:0)

我有一些使用Zope2的经验,但很难用你发布的有限信息给出一个好的答案。我假设您在ZMI中使用Python脚本

这是我要检查的一系列事项:

  • 您是否登录了根文件夹而不是ZMI中的子文件夹?这可能会导致登录提示,因为您正在请求您无权使用的资源
  • 在ZMI中仔细检查" security"您尝试运行的脚本的标签,以确保您的用户角色具有运行脚本的权限
  • 当你在那里检查"代理"选项卡以确保脚本本身具有调用其中的函数的权限
  • 还值得检查您尝试使用的产品是否仍由root acl_user文件夹中列出的用户安装 - 从内存中可能会导致登录提示问题

祝你好运 - 听到那里至少还有一位其他Zope用户感到高兴(也很伤心)!