清除用户输入中的反引号字符

时间:2018-12-01 06:27:14

标签: php shell sanitization

我最近发现了有关shell注入的信息,并且我有一些代码可以在shell环境中执行用户输入,因此我需要清理输入内容,以免出现反引号或其他恶意字符串。使用str_replace()并将其删除是否足够?

2 个答案:

答案 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验证输入。