我最近发现了有关shell注入的信息,并且我有一些代码可以在shell环境中执行用户输入,因此我需要清理输入内容,以免出现反引号或其他恶意字符串。使用str_replace()
并将其删除是否足够?
答案 0 :(得分:0)
仅仅替换反引号还不足以将用户提供的字符串安全地传递到外壳,因为除反引号之外还有其他字符可能会引起麻烦。
PHP具有内置功能,您可以使用该功能:escapeshellcmd
答案 1 :(得分:0)
请检查下面的链接 How to prevent code injection attacks in PHP?
您有很多方法可以实现所需的目标。如您所说,“ str_replace”可以完成这项工作。您也可以像
这样使用正则表达式$Content = preg_replace("/&#?[a-z0-9]+;/i","",$Content);
您还可以使用php_filters验证输入。