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的人们的帮助: 这是它的样子: (编辑:长春站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- linux – 来自CoreOS的Docker和Rocket有什么区别?
- .net – 如何使用Mono Develop在Linux上创建Excel文件
- xmlstarlet – 删除换行符
- linux – 活动套接字的{tcp_error,Socket,etimedout}’消息
- linux – 当RAM几乎一半免费时使用交换
- linux-kernel – 在copy_from_user()声明的头文件中?
- linux – LV状态:不可用.如何使它可用?
- 休息 – 是否无法使用curl来使用Google Cloud Speech API识
- linux – 获取ntpd的gpsd地址
- linux – 如何让apache包含文件夹中的所有文件
- linux – erlang odbc:如何禁用oracle的autocom
- linux – 如何从当前模块获取kobject
- 正确的Linux串口初始化序列
- linux – 使用tar备份整个centos时出错
- -fstack-protector,-fstack-protector-all和-fmu
- Another app is currently holding the yum lock
- linux – 为什么clock_gettime(CLOCK_REALTIME,.
- Linux getopt()函数 getopt_long()函数---转
- 亚马逊Linux上的Nginx php-fpm =退出信号11
- linux – 一次升级多个Debian服务器
