PHP如何防止黑客利用注入漏洞执行危险的命令

1、清理输入
在将用户输入的字符串作为命令的一部分提交给系统执行前,为了防止被黑客利用,所以,需要将输入的命令字符串处理一下。
例如有下列代码:
$document = $_POST['userurl'];
passthru("htmldoc --webpage -f webpage.pdf $document);
当程序执行时,若黑客提交的userurl包含下列数据:
http://www.wj.com/ ; cd /var/www/; rm -rf *
那么大部分UNIX shell会将这个passthru()请求解释为3个单独的命令:
htmldoc --webpage -f webpage.pdf http://www.wj.com/
cd /var/www
rm -rf *
后面两条命令为将整个web文档全部删除。为了防止这种情况发生,所以需要让PHP在解析拼接输入字符的时候,把所有输入字符看成一个完整的字符串,就不会发生这种情况了,为此需要调用函数escapeshellarg()来实现。
定义:string escapeshellarg(string arguments)
说明:返回的值为传入值两头加上单引号。

另一个函数也可以起到类似的预防作用,escapeshellcmd(),其与escapeshellarg()的差异在于他是对传入字符进行转义来清理掉可能的危险。
定义:string escapeshellcmd(string command)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值