运行用户提交的代码的代码服务等网站如何保护自己免受恶意用户攻击?

时间:2017-07-13 22:39:37

标签: javascript node.js security express

我正在为我和我的好友开展一个小项目,其工作方式类似leetcodecodewars等网站。这些站点具有代码编辑器,您可以实际运行代码。我希望用户能够输入一个解决算法的函数,并对其进行单元测试以查看哪些代码效率最高。

这样的网站如何确保某人不会运行一堆可以执行恶意操作的代码?

我认为我无法找到答案,因为我真的不知道有人可以用它来为像CodeWars这样的网站创建问题。

网络代码编辑器保护我的网站免受任何恶意用户(跨网站脚本除外)保护的最佳做法是什么?人们有什么方法可以利用这样的功能?

2 个答案:

答案 0 :(得分:1)

嗯,实现这一目标有几种策略。

基本上,目标是限制对敏感函数的访问,或者为每个代码执行虚拟化或监禁执行环境。

某些服务器语言引擎(such as PHP)接受允许限制对某些功能集的调用的模块或功能。

如今,使用docker等技术,在任何语言中执行功能齐全的代码执行都会轻松得多,并具有一定程度的基本安全性。

答案 1 :(得分:1)

据推测,用户的代码在隔离环境(即虚拟机)中执行。如果是这样,执行的代码将无法逃离VM(除非他们能够在VM实现中发现漏洞)。主机将能够限制用户程序可用的资源。