【问题标题】:(J)Ruby - safe way to redefine core classes?(J)Ruby - 重新定义核心类的安全方法?
【发布时间】:2011-03-10 05:46:13
【问题描述】:

在文件、字符串等核心类中重新定义方法的安全方法是什么。我正在寻找实现类似于 (J)Ruby 中的 Java 安全管理器的东西。

我正在寻找一种方法来重新定义方法,首先查看哪个类/脚本调用了此方法,以及该类/脚本是否属于我想提出的一些列入黑名单的类(我跟踪)的列表一个例外,如果调用类属于非黑名单类,则允许该操作。类似:

class String
  alias_method :old_length, :length

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

我在 JRuby 中尝试过,但这只能作为替代方法。一次调用新的长度方法,下一次调用旧的长度方法。我猜alias 在 JRuby 中不能正常工作! >.

【问题讨论】:

    标签: ruby security jruby


    【解决方案1】:

    如果某些东西有时有效,但有时无效,则更有可能是您的代码有问题,而不是 JRuby。 Select isn't broken

    【讨论】:

    • 奇怪的是它可以在exactly 交替工作。在过去的两天里,我正在尝试修复它。无论如何,谢谢你的链接。好读! ^^
    猜你喜欢
    • 1970-01-01
    • 2016-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-13
    相关资源
    最近更新 更多