Linux下PHP+Apache的26个必知的安全设置(6)

限制PHP进程访问/var/www/html/等专门指定的目录外面的文件

; Limits the PHP process from accessing files outside; of specifically designated directories suchas/var/www/html/open_basedir="/var/www/html/"; ------------------------------------; Multipledirsexample; open_basedir="/home/httpd/vhost/cyberciti.biz/html/:/home/httpd/vhost/nixcraft.com/html/:/home/httpd/vhost/theos.in/html/"; ------------------------------------

第16个设置项:会话路径

PHP中的会话支持包括在随后的访问中保留某些数据的一种方法。这让你能够开发更加定制的应用程序,并加大网站的吸引力。该路径在/etc/php.ini文件中定义,与某一个会话有关的所有数据都将存放在session.save_path选项指定的目录下的文件中。在RHEL/CentOS/Fedora Linux下,默认路径如下:

session.save_path="/var/lib/php/session"

设置用于上传文件时存储文件的临时目录

upload_tmp_dir="/var/lib/php/session"

确保路径是outside /var/www/html,而且无法被其他任何系统用户读取或写入:

#ls-Z /var/lib/php/

示例输出:

drwxrwx---. root apache system_u:object_r:httpd_var_run_t:s0 session

注意:ls命令的-Z选项显示了SELinux 安全上下文,比如文件模块、用户、用户组、安全上下文和文件名称。

第17个设置项:保持PHP、软件和操作系统版本最新

打安全补丁是维护Linux、Apache、PHP和MySQL服务器的一个重要环节。应该使用以下其中任何一个工具(如果你通过软件包管理器来安装PHP),尽快检查所有的PHP安全更新版本,并尽快打上:

#yumupdate

#apt-getupdate && apt-get upgrade

你可以配置红帽/CentOS/Fedora Linux,以便通过电子邮件发送yum软件包更新通知。另一个选项是通过cron job(计划任务)打上所有的安全更新版。在Debian/Ubuntu Linux下,可以使用apticron来发送安全通知。

注意:经常访问php.net(http://php.net/),寻找源代码安装的最新版本。

第18个设置项:限制文件和目录访问

确保你以Apache或www等非根用户的身份来运行Apache。所有文件和目录都应该归非根用户(或apache用户)所有,放在/var/www/html下:

#chown-R apache:apache /var/www/html/

/var/www/html/是个子目录,这是其他用户可以修改的文件根目录,因为根目录从来不在那里执行任何文件,也不会在那里创建文件。

确保在/var/www/html/下,文件权限设成了0444(只读):

#chmod-R 0444 /var/www/html/
      

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/5093.html