我正在为我和我的好友开展一个小项目,其工作方式类似leetcode和codewars等网站。这些站点具有代码编辑器,您可以实际运行代码。我希望用户能够输入一个解决算法的函数,并对其进行单元测试以查看哪些代码效率最高。
这样的网站如何确保某人不会运行一堆可以执行恶意操作的代码?
我认为我无法找到答案,因为我真的不知道有人可以用它来为像CodeWars这样的网站创建问题。
网络代码编辑器保护我的网站免受任何恶意用户(跨网站脚本除外)保护的最佳做法是什么?人们有什么方法可以利用这样的功能?
答案 0 :(得分:1)
嗯,实现这一目标有几种策略。
基本上,目标是限制对敏感函数的访问,或者为每个代码执行虚拟化或监禁执行环境。
某些服务器语言引擎(such as PHP)接受允许限制对某些功能集的调用的模块或功能。
如今,使用docker等技术,在任何语言中执行功能齐全的代码执行都会轻松得多,并具有一定程度的基本安全性。
答案 1 :(得分:1)
据推测,用户的代码在隔离环境(即虚拟机)中执行。如果是这样,执行的代码将无法逃离VM(除非他们能够在VM实现中发现漏洞)。主机将能够限制用户程序可用的资源。