Ich versuche jruby als Skriptsprache zu benutzen (um Quests für ein Spiel zu schreiben), aber ich muss die Verwendung von potenziell gefährlichen Klassen wie Dir
, Process
oder RubyVM
verhindern.Wie kann man nur auf bestimmte Ruby-Klassen zugreifen?
Ich fand bereits eine umständliche Art und Weise einzelne Methoden und Klassen zur Blacklist:
class Dir
def Dir.[]
end
def Dir.chdir
end
def Dir.chroot
end
def Dir.delete
end
def Dir.entries
end
def Dir.exist?
end
def Dir.exists?
end
def Dir.foreach
end
def Dir.getwd
end
def Dir.glob
end
def Dir.home
end
def Dir.mkdir
end
def Dir.initialitze
end
def Dir.open
end
def Dir.pwd
end
def Dir.rmdir
end
def Dir.unlink
end
def close
end
def each
end
def fileno
end
def inspect
end
def path
end
def pos
end
def read
end
def rewind
end
def seek
end
def tell
end
def to_path
end
end
Aber ich hoffe wirklich, dass es eine viel einfachere Art und Weise ist diese Aufgabe oder noch besser die weißen Liste der Klassen durchzuführen, die in der Lage sein sollten benutzen.
unter Verwendung von 'Klasse Dir \ um diese Prävention zu arbeiten n def Dir.workaround_pwd \ n nicht möglich ist, es Dir.pwd \ n Ende \ n Ende \ n' – seyfahni
@seyfahni, ich verstehe dich nicht, bitte, geben Sie die vollständige Erklärung Ihrer Meinung durch die Aktualisierung Antwort – Ilya
Ich denke nur, dass es eine einfache Problemumgehung für Ihre Lösung gibt: [ Workaround für Pastebin] (https://pastebin.com/v0ssbHhg) – seyfahni