首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防止用户上载代码执行恶意任务

防止用户上载代码执行恶意任务
EN

Stack Overflow用户
提问于 2015-03-05 01:59:49
回答 3查看 330关注 0票数 0

对于一个类项目,我们正在创建一个web项目,用户可以上传一个ai脚本(python代码)来玩游戏。我已经完成了文件上传部分,但我关心的是安全性和防止恶意代码。

如何防止用户将恶意代码上传到应用程序?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-03-05 02:05:55

  • 使用PyPy创建和/OR
  • 扫描并删除潜在危险的类导入(fs、system..etc)

重新生成是沙箱方法的活生生的例子。

票数 2
EN

Stack Overflow用户

发布于 2015-03-05 02:28:23

我建议您不要使用关键字进行过滤。有更可靠的方法来阻止恶意代码。我编写了这个小片段来说明恶意代码如何可能绕过字符串过滤过程:

代码语言:javascript
复制
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()

恶意编码者经常想出非常有创意的规避安全的方法。这是一个非常简单的例子,说明比我聪明的人能做到什么。

修正案:

我在这个网站上发现了一些相关的问题:

票数 3
EN

Stack Overflow用户

发布于 2015-03-05 23:57:42

在语言级别进行沙箱几乎是不可能的,因此您有两个选项:

  1. 使用像VirtualBox这样的虚拟化层或更轻量级的东西,比如Google、LXC或Docker,对Python进程进行沙箱化。
  2. 使用像http://repl.it/api这样为您执行此操作的服务
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28868693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档