Skip to content

Instantly share code, notes, and snippets.

@tsabat
Created August 6, 2012 18:56
Show Gist options
  • Save tsabat/3277538 to your computer and use it in GitHub Desktop.
Save tsabat/3277538 to your computer and use it in GitHub Desktop.
security_manager.rb
require 'haml'
require 'java'
class JRubySecurityManager < java.lang.SecurityManager
def checkPermission(perm)
puts perm.inspect
#puts perm
end
#def checkWrite(f)
#puts f
#end
end
java.lang.reflect.ReflectPermission
i = "%pre=`ls al`"
require 'timeout'
begin
status = Timeout::timeout(1) {
begin
thread = Thread.new {
java.lang.System.setSecurityManager(JRubySecurityManager.new)
Thread.current[:out] = Haml::Engine.new(i).render
java.lang.System.setSecurityManager(nil)
}
thread.join
puts thread[:out]
rescue SecurityError => e
puts e
end
}
rescue TimeoutError => e
puts e
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment