Skip to content

Instantly share code, notes, and snippets.

@zzak
Forked from nusco/sandbox.rb
Created September 13, 2010 16:53
Show Gist options
  • Save zzak/577592 to your computer and use it in GitHub Desktop.
Save zzak/577592 to your computer and use it in GitHub Desktop.
# ==============
# Spell: Sandbox
# ==============
# Execute untrusted code in a safe environment.
def sandbox(&code)
proc {
$SAFE = 2
yield
}.call
end
begin
sandbox { File.delete 'a_file' }
rescue Exception => ex
ex # => #<SecurityError: Insecure operation `delete' at level 2>
end
# For more information: http://www.pragprog.com/titles/ppmetr/metaprogramming-ruby
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment