如何在执行不信任代码时确保安全?

2019 年 1 月 2 日
 neurocomputing

就像 Leetcode 那样,用户上传代码执行,但不会对整个系统造成影响

是在环境上做工作?比如,对每次执行建立一个虚拟环境,代码执行完销毁该环境

还是在代码过滤上做工作?比如,限制 import 的包、过滤某些危险代码

3281 次点击
所在节点    程序员
7 条回复
wwqgtxx
2019 年 1 月 2 日
seccomp 了解一下,主要还是靠白名单
wqyyy
2019 年 1 月 3 日
扔容器里吧
eslizn
2019 年 1 月 3 日
沙箱,不同平台有不同的实现方式。不过现在用 docker 会更方便
yanaraika
2019 年 1 月 3 日
seccomp 限制 syscall
cgroup 限制资源占用
chroot 限制文件系统暴露面

代码过滤是最不安全的做法。光个 c 直接写 shellcode 你都拦不住
azh7138m
2019 年 1 月 3 日
可以 ptrace+setrlimit,再加个超时 kill,基本 ok
undefined8
2019 年 1 月 3 日
沙盒?
huihuiHK
2024 年 8 月 2 日
@yanaraika 最近在了解这些。不过网上资料都比较散,有相关书籍推荐吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/523298

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX