PHP以Apache模块安装带来的安全问题
作者:bea
当 PHP 以 Apache 模块方式安装时,它将继承 Apache 用户(通常为“nobody”)的权限。信鸽网提示您:这对安全和认证有一些影响。 比如,如果用 PHP 来访问数据库,除非数据库有自己的访问控制,否则就要使“nobody”用户可以访问数据库。这意味着恶意的脚本在不用提供用户名和密码时就可能访问和修改数据库。一个 web Spider 也完全有可能偶然发现数据库的管理页面,并且删除所有的数据库。可以通过 Apache 认证来避免此问题,或者用 LDAP、.h
当 PHP 以 Apache 模块方式安装时,它将继承 Apache 用户(通常为“nobody”)的权限。信鸽网提示您:这对安全和认证有一些影响。
比如,如果用 PHP 来访问数据库,除非数据库有自己的访问控制,否则就要使“nobody”用户可以访问数据库。这意味着恶意的脚本在不用提供用户名和密码时就可能访问和修改数据库。一个 web Spider 也完全有可能偶然发现数据库的管理页面,并且删除所有的数据库。可以通过 Apache 认证来避免此问题,或者用 LDAP、.htaccess 等技术来设计自己的防问模型,并把这些代码作为 PHP 脚本的一部份。 通常,一但安全性达到可以使 PHP 用户(这里也就是 Apache 用户)承担的风险极小的程度时候,可能 PHP 已经到了阻止向用户目录写入任何文件或禁止访问和修改数据库的地步了。这就是说,无论是正常的文件还是非正常的文件,无论是正常的数据库事务来是恶意的请求,都会被拒之门外。 一个常犯的对安全性不利的错误就是让 Apache 拥有 root 权限,或者通过其它途径斌予 Apache 更强大的功能。 信鸽网提示您:把 Apache 用户的权限提升为 root 的做法极度危险,而且可能会危及到整个系统的安全。所以除非是安全专家,否则决不要考虑使用 su,chroot 或者以 root 权限运行。 除此之外还有一些比较简单的解决方案。比如说可以使用 open_basedir 来限制哪些目录可以被 PHP 使用。也可以设置 Apache 的专属区域,从而把所有的 web 活动都限制到非用户和非系统文件之中。 有用 | 无用
比如,如果用 PHP 来访问数据库,除非数据库有自己的访问控制,否则就要使“nobody”用户可以访问数据库。这意味着恶意的脚本在不用提供用户名和密码时就可能访问和修改数据库。一个 web Spider 也完全有可能偶然发现数据库的管理页面,并且删除所有的数据库。可以通过 Apache 认证来避免此问题,或者用 LDAP、.htaccess 等技术来设计自己的防问模型,并把这些代码作为 PHP 脚本的一部份。 通常,一但安全性达到可以使 PHP 用户(这里也就是 Apache 用户)承担的风险极小的程度时候,可能 PHP 已经到了阻止向用户目录写入任何文件或禁止访问和修改数据库的地步了。这就是说,无论是正常的文件还是非正常的文件,无论是正常的数据库事务来是恶意的请求,都会被拒之门外。 一个常犯的对安全性不利的错误就是让 Apache 拥有 root 权限,或者通过其它途径斌予 Apache 更强大的功能。 信鸽网提示您:把 Apache 用户的权限提升为 root 的做法极度危险,而且可能会危及到整个系统的安全。所以除非是安全专家,否则决不要考虑使用 su,chroot 或者以 root 权限运行。 除此之外还有一些比较简单的解决方案。比如说可以使用 open_basedir 来限制哪些目录可以被 PHP 使用。也可以设置 Apache 的专属区域,从而把所有的 web 活动都限制到非用户和非系统文件之中。 有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- PHP学习之cookie使用详情
- 详解PHP预定义超全局数组变量$_SERVER
- PHP中memcache与memcached对比
- PHP编程中如何使用memcached
- PHP错误控制运算符@的使用
- PHP引用字符串单引号与双引号的区别
- PHP MVC制作一个简单的留言板
- PHP学习:联合MySQL动态创建XML
- 分享一个PHP操作XML类DOMDocument
- PHP解析XML数据获取最新RSS
- 使用PHP生成XML文件代码
- PHP读取XML文件数据实例
- 使用PHP读取XML文件中的数据信息
- 对比几款流行的PHP IDE工具
- PHP中如何正确使用Json
- PHP Json格式与JS Json间的调用
- 了解Json在PHP中的应用
- IIS服务器下配置最佳PHP环境
- IIS下详解配置PHP服务器