将'ls'作为服务运行是否存在潜在问题?

时间:2017-01-16 21:19:25

标签: python web-services

我基本上都是这样做的:

@get_request("/index.html")
def server():
      return os.system("ls")

我想知道如果这样做可能会出现潜在问题。这相当于使用glob

1 个答案:

答案 0 :(得分:1)

那段代码:

def server():
      return os.system("ls")

如果当前目录有效,则仅返回0等同于:

def server():
      return os.listdir(os.curdir)

def server():
      return glob.glob("*")

两者都将当前目录的内容作为list

返回

所以没有安全/安全问题,因为命令是硬编码的,但这个ls服务是无用的。也许你的意思是:

def server():
      return subprocess.check_output("ls").splitlines()

这更有意义......但我仍然没有看到调用子进程执行更慢(并且以不太便携的方式)python本身可以实现的目的。