在线口译员/编制者如何处理恶意代码?

iwe*_*wek 7 security

在线代码解释器/编译器(jsfiddle.net,jsbin.com,ideone.com,codepad.org等)如何处理恶意代码,例如无限循环?

ale*_*lex 11

jsFiddle只运行客户端代码(JavaScript) - 它可以伤害的唯一机器是你的(或查看你的小提琴的人).

大多数浏览器都有适当的位置来检测无响应的脚本(如无限循环),并为您提供暂停脚本的选项.

还有一些网站,如codepad.orgideone.com,它在本地计算机上运行代码.

Codepad.org

代码执行由基于geordi的主管处理.策略是在ptrace下运行所有​​内容,不允许或忽略许多系统调用.编译器和最终可执行文件都在chroot jail中执行,具有严格的资源限制.

当您的应用程序是远程代码执行时,您必须预料到安全问题.我没有依赖chroot和ptrace主管,而是采取了一些额外的预防措施:

  • 管理程序进程在虚拟机上运行,​​这些虚拟机具有防火墙,因此无法进行传出连接.
  • 运行虚拟机的计算机也经过严密防火墙处理,并定期从源映像中恢复.


bti*_*lly 1

该特定站点看起来像是在客户端运行其代码。所以你不能伤害他们的服务器。

其他站点采用在虚拟机中运行代码的方法。您可以限制虚拟机可以占用的资源,并且它们限制了可能造成的潜在损害。