Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何对程序本身隐藏变量_Python_Python 3.x_Subprocess - Fatal编程技术网

Python 如何对程序本身隐藏变量

Python 如何对程序本身隐藏变量,python,python-3.x,subprocess,Python,Python 3.x,Subprocess,我不知道如何命名这个。见鬼,这甚至不是python的问题,因为代码工作正常。让我解释一下,这可能需要一段时间 所以,我一直在一个运行代码的discord机器人中工作。可能是我最糟糕的想法之一,但我喜欢它可能具有的潜力和人们试图打破它的古怪结果 我知道它不漂亮,但它是我的,我很自豪。虽然我很想让人们告诉我如何改进代码,我的代码有多糟糕,但这并不是我的问题所在 所以,这个机器人让每个人都可以运行他们想要的任何代码。任何东西我甚至都不担心。我将在一个树莓圆周率中运行它,我调零了好几次,然后在上面安装了

我不知道如何命名这个。见鬼,这甚至不是python的问题,因为代码工作正常。让我解释一下,这可能需要一段时间

所以,我一直在一个运行代码的discord机器人中工作。可能是我最糟糕的想法之一,但我喜欢它可能具有的潜力和人们试图打破它的古怪结果

我知道它不漂亮,但它是我的,我很自豪。虽然我很想让人们告诉我如何改进代码,我的代码有多糟糕,但这并不是我的问题所在

所以,这个机器人让每个人都可以运行他们想要的任何代码。任何东西我甚至都不担心。我将在一个树莓圆周率中运行它,我调零了好几次,然后在上面安装了docker。我真的不在乎人们能对它做些什么,因为不会有任何敏感数据。嗯,差不多了。问题出在这里

我代码的最后一行是

bot_client.run(token)
该令牌是来自discord的API bot密钥。我真的不想让任何人知道,因为他们可以在使用它的服务器上获得自己的机器人。但是任何人都可以编写一段代码来读取文件。我完全迷路了。我不知道如何保护API密钥。我尝试了一些方法,大多数都与unix权限和用户/组有关,但没有一种方法有效,因为bot创建的文件将继承同一个用户,因此我不能将它们放在不同的用户中,并就此结束


你知道我该怎么做吗?需要明确的是,这是一个通用的应用程序设计问题。目前,您有一个主脚本来创建新的python进程来执行代码,默认情况下,子进程可以完全访问您的磁盘,从而访问您的源代码

IMHO,您应该在操作系统级别进行管理,以便在子流程中启动的Python解释器无法访问应用程序源的文件夹。但这只会带来成本,因为您必须设置两个不同的安全角色以及它们之间的通信通道

首先想到的是一个辅助守护进程,它运行在一个对应用程序的源文件夹完全没有访问权的不同用户下。该守护进程必须启动子Python脚本。您可以使用unix域套接字或任何其他IPC通道在一侧传递文本,在另一侧传递输入/错误


很抱歉,这只是一个暗示,但我现在意识到你的问题导致了一个相当广泛的问题。

嗯,什么?我认为这里的问题是你让任何人运行他们想要的任何代码。总之,我建议你把这个问题缩减到5行左右。现在,里面有太多不相关的噪音,很难准确地解析出你想要什么。开门见山。那么,更多的人将愿意并能够提供帮助。