Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
(J) Ruby安全的重新定义核心类的方法?_Ruby_Security_Jruby - Fatal编程技术网

(J) Ruby安全的重新定义核心类的方法?

(J) Ruby安全的重新定义核心类的方法?,ruby,security,jruby,Ruby,Security,Jruby,在核心类(如File、String等)中重新定义方法的安全方法是什么?我正在寻找在(J)Ruby中实现类似Java安全管理器的东西 我正在寻找一种重新定义方法的方法,首先查看哪个类/脚本调用了该方法,如果该类/脚本属于一些黑名单类(我一直跟踪)的列表,我想引发一个异常,如果调用类属于非黑名单类,则允许该操作。比如: class String alias_method :old_length, :length def length if(#nowHowDoIGetTheCalli

在核心类(如File、String等)中重新定义方法的安全方法是什么?我正在寻找在(J)Ruby中实现类似Java安全管理器的东西

我正在寻找一种重新定义方法的方法,首先查看哪个类/脚本调用了该方法,如果该类/脚本属于一些黑名单类(我一直跟踪)的列表,我想引发一个异常,如果调用类属于非黑名单类,则允许该操作。比如:

class String
  alias_method :old_length, :length

  def length
    if(#nowHowDoIGetTheCallingClass)
      raise "bad boy"
    else
      old_length
  end
end

我在JRuby中尝试过这一点,但这只能作为一种选择。一次调用新的length方法,下一次调用旧的length方法。我猜
别名在JRuby!>中不能正常工作 如果某些东西有时能工作,但在其他时间不能工作,那么问题更可能是您的代码,而不是JRuby

奇怪的是,它的工作方式正好相反。在过去的两天里,我一直在努力修复它。无论如何,谢谢你的链接。读得好^^