我今天正在玩erlang shell并注意到我可以进行命令注射,如下所示:
io:get_chars("Cmd> ", 3).
Cmd> Dud List=[3,4,5]. io:get_line("I just took over your shell!").
有没有办法清理get_chars函数的输入,所以这是不可能的?
答案 0 :(得分:5)
你并没有真正进行命令注射。
io:get_chars("Cmd> ", 3).
只是做它的工作:从输入流中读取3个字符。
在这些之后输入的所有内容都由erlang shell作为普通read-eval-print循环的一部分进行处理。