gpt4 book ai didi

IIS 中的 Python CGI : issue with urandom function

转载 作者:太空宇宙 更新时间:2023-11-03 12:09:18 26 4
gpt4 key购买 nike

我在 IIS 中运行 python CGI 脚本时遇到一个非常奇怪的问题。

脚本在自定义应用程序池中运行,该池使用域中的用户帐户作为身份。该站点禁用模拟,并使用 Kerberos 进行身份验证。

  • 当帐户是“Domain Admins” 组的成员时,一切都非常顺利
  • 当帐户不是 “Domain Admins” 的成员时,我在脚本的第一行收到错误:“import cgi”。似乎导入最终导致生成一个随机数,它是对 _urandom() 的调用失败并显示 “WindowsError: [Error 5] Access is denied” .
  • 如果我从命令提示符运行相同的脚本,当使用与应用程序池中相同的用户登录时,一切都很好。

在网上搜索时,我发现 Windows 上的 _urandom 由操作系统中的 CryptGenRandom 函数支持。不知何故,我的 python CGI 脚本似乎在从 IIS 运行时无法访问该函数,而在从命令提示符运行时它可以访问该函数。

更复杂的是,当以运行应用程序池的帐户登录,然后从 Web 浏览器调用 CGI 脚本时,它会起作用。事实证明,我必须使用与应用程序池相同的用户登录才能工作。正如我之前所说,模拟被禁用,但不知何故,身份似乎以某种方式传递给 Windows 中的安全功能。

如果我修改调用 _urandom() 函数的 random.py 文件以仅返回一个固定数字,一切正常,但我可能破坏了一个python 中的许多安全功能。

请问有人遇到过这样的事情吗?对正在发生的事情有什么想法吗?

最佳答案

我通过将 IIS 7.5 设置更改为 Impersonate User = yes 解决了 _urandom() 错误。我不是 Windows 管理员,所以我无法详细说明。

之后在 python 脚本中 import cgi 工作得很好。

关于IIS 中的 Python CGI : issue with urandom function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12639930/

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