linux – 在线虚拟机中安全地评估perl代码
更新2:我得到这个工作,它是活的:) 更新:请检查评论,@ikegami答案正在工作,但有一个小问题.我可能会做一些很简单的事情. 我最近决定我不得不学习Linux / Perl,然后我开始构建这个www.tryperl.com作为一个学习项目.这是一个Cloud IDE. (自从我第一次在Perl,linux,bash,osx手中开始只有几个月,所以请轻松一点) 目前我评估代码与Safe.pm,但我的游戏计划是: 一个单独的Amazon EC2 VM,它将评估不安全的perl代码并返回结果.虚拟机将被阻止从互联网和负载均衡.然后,我可以从快照重新设置这台机器. 这主要是我将使用代码来评估服务器上的perl代码,我使用Time::Out进行超时管理: my $code = .. my $arg = .. #create a file with random name my $filename = rand().".pl"; open(FILE,">$filename") print FILE $code; close(FILE); #use Time::Out to timeout after 10 secs my $ret = timeout 10 => sub { #run the file just created with $arg as an argument. << This is IMP my $r = `perl $filename $arg`; return $r; }; if ($@){ return $@; } return $ret; 我的问题 >我可以以某种方式避免物理文件创建,并使用$arg管道$代码? 我的开发框是OSX 10.8,生产服务器是前端的RHEL和Perl eval Machine的Ubuntu.我跑EC2.查看完整的堆栈details here. 任何详细的答案将会赞赏和奖励代表和独角兽尘土:) 解决方法经过13天的努力,终于做到了!我探索了FreeBSD Jails,我的lack of networking经验和事实,我不得不重建操作系统多次驱使我离开. FreeBSD真的很酷!我会很快回来 我在OpenVZ看起来很惨淡,然后感谢@ewwhite我重新审视了Linux Containers,并给了它一个适当的镜头. 文档不是很好,但this article真的帮助了一切. >我在一个负载均衡器下安装了多个容器:HAProxy. 一个限制:我不太了解网络,所以我通过禁用主机端口转发来阻止互联网上的监狱.然而,监狱仍然需要在网络上,以便主机与之通信,因此,您仍然可以在监狱内执行ping,以解决域,但不会响应.所以任何web请求都会失败.我还对Ping进行字符串扫描并阻止它. 任何建议或改进将是非常欢迎! 我想感谢@JakeFeasel @ikegami @ewwhite @chris-s和ubuntu.SE和unix.SE的人们的帮助: 这是它的样子: (编辑:甘南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 终端 – oh-my-zsh:git达到最大嵌套功能级别
- embedded-linux – 如何在bitbake的配方中将文件夹或文件添
- 如何从linux服务器上的大(30Gb)zip文件中提取文件
- linux – RHEL7 – /usr/lib64 / libstdc .so.6:版本“CXX
- 如何在Linux上安装Haskell Debian Wheezy?
- linux – 保存硬链接和符号链接,创建tar球时的权限,同时解压
- 期望在Linux中,fd 打开文件描述符的最大数量是否合理?
- linux – erlang odbc:如何禁用oracle的autocommit
- linux – 限制bash循环
- linux – 客户端向服务器发送延迟FIN ACK(500ms)