安全地将python命令回显到文件中,而不执行它们

安全地将python命令回显到文件中,而不执行它们,python,Python,所以我有一个python文件,里面有很多行,我想读入python,然后通过套接字回显到另一个文件中 假设我有foo.py文件 import os os.popen('some command blah') print("some other commands, doesn't matter") 然后我尝试打开文件,读取所有行,并将每一行回送到一个新文件中 类似于 scriptCode = open(os.path.realpath(__file__)).readlines() for line

所以我有一个python文件,里面有很多行,我想读入python,然后通过套接字回显到另一个文件中

假设我有foo.py文件

import os
os.popen('some command blah')
print("some other commands, doesn't matter")
然后我尝试打开文件,读取所有行,并将每一行回送到一个新文件中

类似于

scriptCode = open(os.path.realpath(__file__)).readlines()
for line in scriptCode:
    connection.send("echo " + line + " >> newfile.py")
print("file transfered!") 
但是,当我这样做时,命令在远程shell中执行

因此,我的问题是:

如何在不执行任何关键字的情况下安全地将文本回显到文件中

我试过什么

在行周围添加单引号 在行的周围添加单引号,然后在行的单引号上添加反斜杠 我考虑过但尚未尝试过的事情:

Base64在远程机器上对该行进行编码,然后对其进行解码我不想这样做,因为没有担保它将有此命令 我知道这很奇怪。我为什么要这样做

我正在构建一个pentesting反向shell处理程序。 将:

返回字符串s的shell转义版本。返回的值是一个字符串,在不能使用列表的情况下,该字符串可以安全地用作shell命令行中的一个标记


比自己引用字符串要安全得多。

请注意,它与:“+line.replace”、“\'\'+”完全相同,并且shlex.quote仅在Python 3.3中添加。@alex taylor的工作方式很有魅力。虽然我是从管道里买的谢谢