apache+php+mysql安全配置全攻略个人整理算不上原创,mysql的略过不说了
apache方面:
1.编译源代码,修改默认的banner
2.修改默认的http状态响应码404,503等默认页面
3.访问特殊目录需要密码.htaccess
4.关闭索引目录options -Indexes
5.关闭CGI执行程序options -ExecCGI
6.apache限制目录php_admin_value open_basedir /var/www
7.apache的php扩展名解析漏洞
apache配置文件,禁止.php.这样的文件执行,配置文件里面加入
<Files ~ "\.(php.|php3.)">
order Allow,Deny
Deny from all
</Files>
8.apache设置上传目录无执行权限
关闭路径/www/home/upload的php解析:
<Directory "/www/home/upload">
<Files ~ ".php">
order allow,deny
Deny from all
</Files>
</Directory>
PHP方面:
1.配置文件php.ini设置register_globals = Off。(防止变量滥用)
2.magic_quotes_gpc=On还是必须的了,咱可以程序处理好,客户不能- - !!
3.safe_mode是唯一PHP_INI_SYSTEM属性,必须通过php.ini或httpd.conf来设置。要启用safe_mode,只需修改php.ini:safe_mode = On(避免本地包含、文件打开、命令执行)
4.如非特殊需要,一定要关闭PHP的远程文件打开功能。修改php.ini文件(避免远程包含漏洞)
5.防注入,在php.ini中,找到此节:
; Automatically add files before or after any PHP document.
;auto_prepend_file = "phpids.php"
;auto_append_file = "alert.php"
默认是空,请添加所包含的文件。
同时找到:
; UNIX: "/path1:/path2"
;include_path = ".:/php/includes"
;
; Windows: "\path1;\path2"
include_path = ".;F:\PHPnow\htdocs"
6.修改display_errors = Off(关闭警告及错误信息,爆路径)
7.disable_function要屏蔽的
disable_functions = phpinfo,exec,system,passthru,shell_exec,escapeshellarg,escapeshellcmd,proc_close,proc_open,dl,popen,show_source
8.disable_classes可以禁用某些类,如果有多个用逗号分隔类名,看情况所需