gpt4 book ai didi

python - 鉴于我的代码是开源的并且我在服务器上运行,并且我接受近乎原始的代码,那么最糟糕的情况是什么?

转载 作者:太空宇宙 更新时间:2023-11-03 12:15:34 25 4
gpt4 key购买 nike

我正在研究几个案例,在这些案例中,接受近乎原始的代码要容易得多。所以,

  1. 如果不能使用 lambda,您可以用表达式做的最糟糕的事情是什么?如何做?
  2. 如果您不能使用 import,您可以对已执行代码做的最糟糕的事情是什么?如何做?(不能使用 X == 字符串被扫描为 X)

此外,如果有人能想到给定 d = {key:value,...} 的表达式,则 B 是不必要的:expr.format(key) == d[key]

不改变格式的外观。

最佳答案

你能用表达式做的最坏的事情是

__import__('os').system('rm -rf /')

如果服务器进程以 root 身份运行。否则,您可以填满内存并使进程崩溃

2**2**1024

或者通过执行 shell fork bomb 使服务器停止运行:

__import__('os').system(':(){ :|:& };:')

或者在 Python 本身中执行一个临时的(但破坏性足够)fork 炸弹:

[__import__('os').fork() for i in xrange(2**64) for x in range(i)]

扫描 __import__ 无济于事,因为有无数种方法可以找到它,包括

eval(''.join(['__', 'im', 'po', 'rt', '__']))
getattr(__builtins__, '__imp' + 'ort__')
getattr(globals()['__built' 'ins__'], '__imp' + 'ort__')

请注意,evalexec 函数也可用于以间接方式创建上述任何一种。如果你想在服务器上进行安全的表达式评估,请使用 ast.literal_eval .

关于python - 鉴于我的代码是开源的并且我在服务器上运行,并且我接受近乎原始的代码,那么最糟糕的情况是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6609664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com