J'essaie d'utiliser jruby comme langage de script (pour écrire des quêtes pour un jeu), mais je dois empêcher l'utilisation de classes potentiellement dangereuses comme Dir
, Process
ou RubyVM
.Comment autoriser l'accès à certaines classes ruby spécifiques?
je l'ai déjà trouvé une façon lourde à la liste noire des méthodes et des classes simples:
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
Mais je l'espère vraiment qu'il ya un moyen beaucoup plus facile d'effectuer cette tâche ou mieux encore whitelist les classes qui devraient être en mesure de utilisation.
N'est-il pas possible de contourner cette prévention en utilisant la classe Dir \\ def Dir.workaround_pwd \ n Dir.pwd \ n fin \ n fin \ n' – seyfahni
@seyfahni, je ne vous comprends pas, donnez svp l'explication complète de votre opinion en mettant à jour la réponse – Ilya
Je pense juste qu'il y a une solution de contournement facile pour votre solution: [ Solution de contournement sur Pastebin] (https://pastebin.com/v0ssbHhg) – seyfahni