Recentemente ho letto che YAML non era " progettato per gestire l'input dell'utente malintenzionato ", perché un input YAML dannoso "può creare istanze di tutte le classi definite nell'applicazione Rails di destinazione". Anche Wikipedia spiega che
YAML allows language specific tags so that arbitrary local objects can be created by a parser that supports those tags. Any YAML parser that allows sophisticated object instantiation to be executed opens the potential for an injection attack.
Di conseguenza, sembra che sia potenzialmente pericoloso analizzare l'input non attendibile utilizzando alcuni parser YAML.
Qualcuno può spiegare come analizzare in modo sicuro l'input YAML non attendibile, in Rails, Python e Perl? Ci sono librerie di analisi YAML che sono sicure, o modi per invocarle che garantiscono che siano sicure anche se l'input proviene da una fonte non affidabile?