如何从另一个python文件安全地运行python文件?

2024-04-25 04:22:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着使我的代码模块化,因为它太长了,问题是我不知道我做它是否安全。我将代码分割成不同的文件,因此一个python文件运行其他文件,有时我必须调用一个运行另一个文件的文件来运行另一个文件,因此需要多个链式命令。你知道吗

问题是有些文件会处理诸如密码之类的敏感信息,所以我不知道这样做是否安全。理想情况下,在执行一个文件后,它应该关闭自身,从内存中删除所有变量,并释放空间,就像我通常只执行一个文件一样,问题是我不知道如果调用多个嵌套到另一个文件中的文件,这是否适用。显然,只有执行的文件才应该清除自身,而不是活动的文件,但我不知道是否是这样。你知道吗

我一直这样调用我的模块

os.system('python3 ' + filename)

随后在每个文件中,相同的代码用os.system调用另一个文件,形成嵌套或链式调用系统。你知道吗

例如,如果我调用shell中的第一个文件:

python3 file1.py

然后file1调用:

os.system('python3 file2.py')

然后file2调用:

os.system('python3 file3.py')

我希望file3从内存中清除并在运行后完全关闭,而file2和file1可能仍然处于活动状态。我不希望file3在执行之后仍然在内存中。因此,如果file3使用密码,显然应该在运行后从内存中清除密码。你知道吗

怎么做?你知道吗

我读过关于多种选择:

from subprocess import call
call(["python3", "file2.py"])

import subprocess
subprocess.call("file2.py", shell=True)

execfile('file2.py')

import subprocess
subprocess.Popen("file2.py", shell=True)

哪个更安全?你知道吗


Tags: 文件内存代码pyimport密码osshell
1条回答
网友
1楼 · 发布于 2024-04-25 04:22:09

Python严重依赖于输入的概念。你不应该试图在这个问题上改头换面。只需从主脚本导入脚本并使用函数触发它们。如果您想确保变量被丢弃,您应该在函数的末尾或变量不再使用时包含del语句。你知道吗

另一方面,你的密码问题从一开始就是有缺陷的。如果一个.py文件包含一个纯文本的密码,那么它就永远不会被保护。您应该实现一个秘密:参见以下主题:I need to securely store a username and password in Python, what are my options?

相关问题 更多 >