PHP如何防止黑客利用注入漏洞执行危险的命令
来源:互联网 发布:博客源码那个好 编辑:程序博客网 时间:2024/05/17 13:06
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)
在将用户输入的字符串作为命令的一部分提交给系统执行前,为了防止被黑客利用,所以,需要将输入的命令字符串处理一下。
例如有下列代码:
$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)
0 0
- PHP如何防止黑客利用注入漏洞执行危险的命令
- 如何防止SQL注入漏洞
- 关于PHP的漏洞以及如何防止PHP漏洞?
- 关于PHP的漏洞以及如何防止PHP漏洞?
- 尽快换用Joomla! 1.5.6或者进行补丁,防止SQL注入漏洞---Joomla! 1.5.6 以下的危险漏洞
- 防止黑客注入的方法
- PHP如何防止注入
- SQL注入漏洞产生的原因 ? 如何防止?
- SQL注入漏洞产生的原因 ? 如何防止?
- SQL注入漏洞产生的原因 ? 如何防止?
- SQL注入漏洞产生的原因?如何防止?
- 什么是注入?黑客们是怎样利用注入漏洞攻击网站的?
- 实战演示黑客如何利用SQL注入漏洞攻破一个WordPress网站
- 实战演示黑客如何利用SQL注入漏洞攻破一个WordPress网站
- 实战演示黑客如何利用SQL注入漏洞攻破一个WordPress网站
- 实战演示黑客如何利用SQL注入漏洞攻破一个WordPress网站
- ASP网站如何防止注入漏洞攻击
- Linux执行的危险命令
- PHP常量
- 2014 CVPR 与 2013 ICCV
- Unity3D学习之(自动寻径)
- PHP三个等号与两个等号的区别
- PHP单引号和双引号字符串的区别
- PHP如何防止黑客利用注入漏洞执行危险的命令
- java 多线程应用(并发)
- cocos2d-x 3.x之动画
- 如何清除LI之间的间距
- 自动寻径
- 解决PHP中用JQuery加载PHP和HTML文件中文乱码问题
- Javascript返回多个值的应用
- 改为引用css文件后顶部莫名其妙的空隙
- PHP的$_SERVER使用指南