1.软件版本:PHP版本应该从PHP官方提供的下载页面下载,注意不要下载beta版本。
PHP官网下载地址为:http://www.php.net/downloads.php
2.控制脚本访问权限:PHP默认配置允许php脚本程序访问服务器上的任意文件,为避免php脚本访问不该访问的文件,从一定程度上限制了php木马的危害,需设置php只能访问网站目录或者其他必须可访问的目录。
/usr/local/apache2/web/为网站根目录,打开php.ini,安全加固配置方式如下:
需要多个目录时,以冒号隔开如:
3.禁止使用的PHP危险函数:Web木马程序通常利用php的特殊函数执行系统命令,查询任意目录文件,增加修改删除文件等。php木马程序常使用的函数为:dl,assert,exec,popen,system,passthru,shell_exec等。
打开php.ini,安全加固配置方式如下,禁止使用这些危险函数:
4.关闭注册全局变量:在PHP中提交的变量,包括使用POST或者GET提交的变量,会自动注册为全局变量,能够直接访问,这是对服务器非常不安全的,所以不能让它注册为全局变量,就把注册全局变量选项关闭。
打开php.ini,安全加固配置方式如下,关闭注册全局变量设置:
注:默认php配置文件该选项是关闭的。
PHP 5.3.*与5.4.*中已被移除。
5.开启magic_quotes_gpc:magic_quotes_gpc会把引用的数据中包含单引号'和双引号"以及反斜线 \自动加上反斜线,自动转译符号,确保数据操作的正确运行,magic_quotes_gpc的设定值将会影响通过Get/Post/Cookies获得的数据,可以有效的防止SQL注入漏洞。
打开php.ini,安全加固配置方式如下,打开magic_quotes_gpc设置:
注:PHP5.3.*与5.4.*中已被移除。
6. 关闭错误消息显示:php在没有连接到数据库或者其他情况下会有提示错误,一般错误信息中会包含php脚本当前的路径信息或者查询的SQL语句等信息,这类信息提供给黑客后,是不安全的,所以服务器建议禁止错误提示。
打开php.ini,安全加固配置方式如下,关闭错误信息显示设置:
7.开启错误日志记录:在关闭display_errors后能够把错误信息记录下来,便于查找服务器运行的原因,同时也要设置错误日志存放的目录,建议跟webserver的日志放在一起。
打开php.ini,安全加固配置方式如下,打开错误日志记录并设置错误日志存放路径:
注:该文件必须允许webserver的用户和组具有写的权限
8.禁止访问远程文件:允许访问URL远程资源使得PHP应用程序的漏洞变得更加容易被利用,php脚本若存在远程文件包含漏洞可以让攻击者直接获取网站权限及上传web木马,一般会在php配置文件中关闭该功能,若需要访问远程服务器建议采用其他方式如libcurl库。
打开php.ini,安全加固配置方式如下,禁止访问远程文件:
9.开启php安全模式:php的安全模式是个非常重要的内嵌的安全机制,能够控制一些php中的函数,比如system(),同时把很多文件操作函数进行了权限控制,也不允许对某些关键文件的读取。
打开php.ini,开启safe_mode:
注:如果安全模式打开了,但是却是要执行某些程序的时候,可以指定要执行程序的主目录:safe_mode_exec_dir = D:/usr/bin
PHP 5.3.*与5.4.*中已被移除。
10.nginx文件解析漏洞防御:如果webserver为nginx, 则须在PHP的配置文件php.ini中配置cgi.fix_pathinfo = 0,防止nginx文件解析漏洞。
原文发布于微信公众号 - 腾讯云安全(TencentCloudSecurity)