in reply to Re: Passing argument into STDIN inside safe.pm reval
in thread Passing argument into STDIN inside safe.pm reval
Hey thanks a ton for your replies and effort!
I guess running the code in a virtual environment is the only way out!
I'm trying to sort of understand and mimic www.perltuts.com. The author says this on his blog :
Evaluator is a simple daemon that runs on a virtual machine, it accepts the code, builds the Perl package and evals it capturing the output with Capture::Tiny. It does some timeout checking and fork limiting of course.
The virtual machine (qemu Debian image) allows you to run a real Perl code on a real machine. This can be used when writing advanced tutorials including IO, networking, forks etc (I tried Safe but wanted more freedom). It is reset every hour from a snaphot.
So I' playing about on Amazon EC2 and was thinking of running a new instance that will just evaluate code and return the result. I'm thinking I can use Time::Out to timeout operations, but (1) how do I do a fork limit? (2) Am I pretty safe if I allow any perl code to run but restart my VM every hour or something?