Ourren

关注技术,记录生活.

PHP5.4中删除的安全函数

| 留言

前几天配置PHP5.4的时候发现PHP新版已经在一些安全函数方面进行了增改,从php自身防止一些不必要的漏洞,因此开发人员在写代码时也需要注意版本的兼容。下面讲几个涉及安全方面的函数进行说明。
1、safe_mode
状态:已删除
描述:此函数主要限制系统相关的文件打开、命令执行等函数(具体影响函数见参考1)。当然现在也有bypasss safe_mode的方法(见参考2),通过com接口来绕过。
解决办法:可以通过配置php.ini中的disable_functions函数列表进行限制指定函数。

2、magic_quotes_gpc
状态:已删除 (magic_quotes_runtime、magic_quotes_sybase 删除)
描述:此函数在PHP <= 4.2.3默认开,会自动对GPC (Get/Post/Cookie)提交的值中的’, “, 和空格进行转义,PHP5.4中get_magic_quotes_gpc()默认返回false。
解决办法:基本上还是不受影响,先检测状态,然后采用mysql_real_escape_string进行转义处理。

3、register_globals
状态:已删除
描述:此函数虽然从PHP>>4.2开始默认由on改为off,但是如果程序员开启的话会导致变量覆盖等安全问题,特别是结合文件包含漏洞等。
解决办法:可以结合前面sablog源码中的函数进行改写(采用extract函数).

4、session_register
状态:已删除(session_unregister()、session_is_registered 删除)
描述:采用session认证的时候可以用该函数注册session变量。
解决办法:采用$_SESSION数组进行注册变量。

参考:
http://hi.baidu.com/zhangguanshi/blog/item/0a5bf51771a54e42f3de32d1.html
http://luoq.net/PHP-COM-functions/
http://php.net/releases/5_4_0.php