我负责开发一个大型 Python/Windows/Excel 应用程序,供一家在世界各地设有办事处的金融机构使用。最近某个国家/地区的法规发生了变化,因此我们被告知需要创建一个“锁定”版本的发行版。
在与我的外国同行进行了一些令人沮丧的对话之后,他们似乎担心有人可能会滥用他们计算机上的 python 解释器来生成可能用于规避安全性的非标准应用程序。
我最初的建议只是取消对 python.exe 和 pythonw.exe 的执行权限:我们的应用程序作为 Excel 插件使用,仅使用 Python DLL。这些 exe 文件从未实际使用过。
我的对手仍然担心有人可以对 Python DLL 进行调用 - 黑客可以利用“exec”函数,例如从能够调用 Windows DLL 中的函数的另一种编程语言或虚拟机,例如 VBA。
有什么办法可以防止我们要安装的DLL被滥用吗?在这一点上,我没有想法了。我需要找到一种方法来确保 Python 只会运行我们授权的程序。
当然,这个问题有一个荒谬的因素:因为计算机都有 Excel 和 Word,所以它们都有 VBA,这是一种众所周知的脚本语言,在功能上与 Python 相当。
当 Excel 的 VBA 完全开放时,担心 python 显然没有意义,但这是公司政治,而且是我的团队提议使用 Python,所以我们需要证明我们的东西可以相当安全.
最佳答案
“相当安全”被任意定义为“比 Excel 和 VBA 更安全”。
你赢不了这场战斗。因为吵架是为了错误的事情。任何人都可以使用任何 EXE 或 DLL。
您需要以不同的方式定义“锁定”——以一种您可以成功的方式。
您需要将“锁定”定义为“无法更改 .PY 文件”或“我们可以审核对 .PY 文件的所有更改”。如果您将竞争环境转移到您可以控制的地方,您获胜的机会很小。
获取法规——不要相信任何其他人会为您解释这些法规。
绝对确定法规的要求——不要听信别人的解释。
关于python - 如何创建一个锁定的 python 环境?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/811670/