php中禁止危险php函数的例子
发布:smiling 来源: PHP粉丝网 添加日期:2014-08-21 11:06:05 浏览: 评论:0
在php中我们如果想让系统函数不被执行可以在php.ini中加上Disable_functions后面跟函数名就可以了.
禁用方法如下:打开/etc/php.ini文件,搜索定位到这行:
1.disable_functions =
添加需禁用的函数名,比如如下代码:
phpinfo,eval,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,fsockopen
相反的如果要运行php运行某个函数删除相应的函数即可,但文章有个“eval”函数,这个不是系统函数所以无法禁止不信大家可试下.
以上只是列了部分不叫常用的文件处理函数,你也可以把上面执行命令函数和这个函数结合,就能够抵制大部分的phpshell了.
但是我后来看一文章告诉我们这样做不是万能的在linux中可以直接突破Disable_functions执行Linux命令,代码如下:
- <?php
- //PHP4调用方法
- dl('../../../../../home/apache/htdocs/php4.so');
- biguanspider('uname -a');//调用函数
- ?> www.phpfensi.com
- //开源代码phpfensi.com
- <?php
- //PHP5调用方法
- dl('../../../../../home/apache/htdocs/php5.so');
- spiderbiguan('uname -a');//调用函数
- ?>
很多管理员在封杀PHP危险函数的时候一般都是这样的:disable_functions = proc_open,exec,passthru,shell_exec,system,popen
但是如果编译PHP时带–enable-pcntl参数就危险了,可以用pcntl_exec函数执行指定程序,也可以反弹一个SHELL,在PHPINFO里查看编译参数.
描述:pcntl_exec — 在当前进程空间执行指定程序,具体的做法我就不写了,所以linux安全还是得从本身设置不要想到php这样配置就KO了.
Tags: php禁止函数 危险php函数
- 上一篇:php 防止查询的sql攻击方法总结
- 下一篇:防御PHP木马攻击的方法小结
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)