对于一个类项目,我们正在创建一个Web项目,用户可以上传一个ai脚本(python代码)来玩游戏。我已完成文件上传部分,但我担心安全性并防止恶意代码。
如何阻止用户将恶意代码上传到应用程序?
答案 0 :(得分:3)
我建议您远离按关键字过滤。有更可靠的方法来阻止恶意代码。我写了这个小片段来说明恶意代码如何可能绕过字符串过滤过程:
test = """
def f():
import os
print((os.name))
f()
"""
obfus = []
for c in test: obfus.append(chr(ord(c) + 1))
obfus = ''.join(obfus)
obfus.replace("os", "**")
def hidden_things():
print_os = []
for c in obfus: print_os.append(chr(ord(c) - 1))
exec(''.join(print_os))
hidden_things()
恶意程序员经常提出非常有创造性的方法来规避安全。这是一个非常简单的例子,说明了比我更聪明的人能够完成的事情。
<强>修订:强>
我在这个网站上发现了一些相关的问题:
答案 1 :(得分:2)
repl是沙箱方法的实例。
答案 2 :(得分:0)
在语言级别进行沙盒几乎是不可能的,因此您有两种选择: