HI,
I have a requirement where a user could enter ruby scripts in the view(
typically a text area) and the controller should pick this text on
submit and execute the script(content of text area) line by line.
HI,
I have a requirement where a user could enter ruby scripts in the
view(
typically a text area) and the controller should pick this text on
submit and execute the script(content of text area) line by line.
How should I do it in rails?
Well you could just use eval, but that sounds like an incredibly bad
idea security wise.
HI,
I have a requirement where a user could enter ruby scripts in the
view(
typically a text area) and the controller should pick this text on
submit and execute the script(content of text area) line by line.
How should I do it in rails?
Well you could just use eval, but that sounds like an incredibly bad
idea security wise.
Fred
I did try ‘eval @test.script’ where the script was filled in the @test.script but that does not work. Is there a safe way of handling
execution errors that can occur when executing scripts
+1 to Fred’s comment about security - there are some solutions that
can mitigate
the security problems, but eval’ing code sent from the web is a BAD
IDEA. If you
have any user access control in your system, this can get around it.
There are a couple things you might be interested in:
One thing I’ve been thinking recently is that jruby might be neat for
this, assuming you can just lean on Java’s security stuff (no idea if
you can).
+1 to Fred’s comment about security - there are some solutions that
can mitigate
the security problems, but eval’ing code sent from the web is a BAD
IDEA. If you
have any user access control in your system, this can get around it.
There are a couple things you might be interested in:
One thing I’ve been thinking recently is that jruby might be neat for
this, assuming you can just lean on Java’s security stuff (no idea if
you can).
Fred
Thanks for the inputs. Yes, there could be some security implications
with this but is there a neat way of say providing a tool which povides
the user a way to control script execution on the server? Also the
flexibility of ordering scripts is important, that is why a full fledged
ruby editor is required on the browser. Is there any view plugin which
can accept ruby scripts?
Well you could just use eval, but that sounds like an incredibly bad
idea security wise.
Fred
I did try ‘eval @test.script’ where the script was filled in the @test.script but that does not work. Is there a safe way of handling
execution errors that can occur when executing scripts
+1 to Fred’s comment about security - there are some solutions that
can mitigate
the security problems, but eval’ing code sent from the web is a BAD
IDEA. If you
have any user access control in your system, this can get around it.
There are a couple things you might be interested in:
_why’s Sandbox class. It’s mostly a proof of concept, but it might
have some ideas.
Note that while it can keep some bad things from happening, you’ll
still need to give
the sandboxed code access to the DB (that is why you’re evaling Ruby
from the web, right?)
at the very least, some kind of usage of $SAFE, which could protect
your environment
a little. But then you’ve got threading problems…