2009-07-10 7 views
2

Je jouais avec le shell Erlang aujourd'hui et a remarqué que je pouvais faire des injections de commandement, quelque chose comme ce qui suit:Comment désinfecter l'entrée Erlang?

io:get_chars("Cmd> ", 3). 
Cmd> Dud List=[3,4,5]. io:get_line("I just took over your shell!"). 

Yat-il un moyen d'assainir l'entrée de la fonction get_chars si cela est impossible?

Répondre

5

vous ne faites pas vraiment d'injections de commande. io:get_chars("Cmd> ", 3). simplement fait son travail: lire 3 caractères du flux d'entrée. tout ce qui est entré après que ceux-ci ont été traités par le shell erlang dans le cadre de la boucle normale read-eval-print.