不正确的转义字符

在此 Stack Overflow 问题中 ,用户 txtechhelp 发现了^字符的问题,这可能会导致安全问题。

原因

anyInvaildCommand ^

注意:确保插入符号(^)是最后一个字符! 任何额外的 CR\LF 根本不起作用!

插入符号寻找下一个要转义的字符。然而,没有更多的字符可以转义,所以 cmd 无限循环,寻找转义的字符。在这个循环过程中,cmd.exe 会消耗你的计算机内存。并逐渐吃掉所有的记忆,让电脑崩溃。

这个问题可能导致更严重的安全问题,因为人们可以将代码输入到已解锁的计算机中。

解决方案

  • 使用代码页 UTF-16 可以解决这个问题。只有 UTF-8ASCII 才会导致错误。

  • 确保文件中有额外的 CR\LF,或者只是不要在文件末尾使用插入符号。

额外

这个错误似乎在 Windows 10 中得到解决。