xampp安全配置
xampp是一套便捷的环境搭建工具,不过多用于测试环境下使用。平时为了免去整合的烦琐,我们也往往在生产环境上使用到xampp用于快速、便捷的搭建我们所需要的环境,尤其在windows环境下。如果直接拿去用是十分不安全的,我们只需要用之前略加配置,使用起来还是比较方便和安全的。
一、xampp设置
安装完毕后,进入http://127.0.0.1/security/可以查看到当前配置中是否存在安全隐患。如果发现安全隐患,我们可以打开http://127.0.0.1/security/xamppsecurity.php,配置mysql root密码、phpmyadmin安全认证、htaccess密码保护。如果在配置过程中勾选了“Safe plain password in text file”项,最好将该密码明文文件移动一个安全的目录保存,或记录到自己本机后,从服务器上删除。
二、apache的安全配置及版本隐藏
1、打开C:xamppapacheconfextra目录(默认安装时为该路径),找到httpd-xampp.conf配置文件,将最后几项xampp|security|licenses|phpmyadmin|webalizer最名目录的配置删除掉。如无需要,最好能将这个目录对应的物理目录也删除掉。如需保留,末尾那一串访问一定要设置好(默认是只能本机访问以上几个URL)。
2、隐藏apache版本
默认情况下,访问apache服务器,访问某个禁止文件或者不存在的文件时,会显示服务器的版本信息,具体如下:
1Apache/2.2.8 (Win32) DAV/2 mod_ssl/2.2.8 OpenSSL/0.9.8g mod_autoindex_color PHP/5.2.5 mod_jk/1.2.25
这样就等于告诉别人,我装的什么锁,你到那里可以找到这个型号的钥匙,来打开服务器的门。除此之外,别人同样可以通过浏览器插件查看网页头来获取。想要屏蔽这些信息也十分简单,打开在xamppapacheconfextra中的httpd-default.conf文件,修改以下两处:
1ServerTokens Full 改为 Prod //不允许在http响应里返回服务器的版本信息
2ServerSignature On改为off //不允许显示服务器的特征信息
3、注释mod_status和mod_info模块
这两个模块主要用于查看apache的运行状态和服务器信息的,一般我们很少会用到,除非在进行apache性能调优和状态查看时,会用到以上两个模块。所以建议把这个两模块的配置注释掉。注释方法十分简单,打开httpd.conf文件,打到以上两个模块所在的行添加#,并重启apache服务使配置生效就OK了。
如需使用以上两个模块,请打开xamppapacheconfextra目录下的httpd-info.conf文件,将其中server-status、server-info两个配置修改如下:
server-status
1<location>
2 SetHandler server-status
3 Order deny,allow
4 Deny from all
5</location>
server-info
1<location>
2 SetHandler server-info
3 Order deny,allow
4 Deny from all
5 Allow from 127.0.0.1//表示只允许本机访问,前提是要加载mod_info.so模块
6</location>
在原配置新增访问控制部分。
4、关闭不必要的目录索引功能
禁用目录索引功能的示例如下:
1<directory>
2Options -Indexes FollowSymLinks //清除FollowSymLinks,或者直接使用Options none
3</directory>
“-”号代表的是取消某功能,”+”或者什么都没有,表示对某目录增加某功能属性。
三、apache性能优化
1、使用多路处理模块
打开xamppapacheconfextrahttpd-mpm.conf文件,找到winnt配置部分,修改为如下:
1<ifmodule mpm_winnt_module="">
2 ThreadsPerChild 250
3 MaxRequestsPerChild 5000 //默认值为0
4 Win32DisableAcceptEx //这个根据自己的情况,注释掉
5</ifmodule>
注:该配置只适用于windows下的apache,linux由于和windows之间系统设计的区别。不适用此配置。
- ThreadsPerChild:这个参数用于设置每个进程的线程数, 子进程在启动时建立这些线程后就不再建立新的线程了. mpm_winnt上的默认值是64, 最大值是1920. 这里建议设置为100-500之间,服务器性能高的话值大一些,反之值小一些。
- MaxRequestsPerChild:该参数表示每个子进程能够处理的最大请求数, 即同时间内子进程数目.设置为零表示不限制, mpm_winnt上的默认值就是0,官方参考手册中不建议设置为0, 主要基于两点考虑: (1) 可以防止(偶然的)内存泄漏无限进行,从而耗尽内存; (2) 给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。
2、修改apache日志输出格式
修改apache的默认日志输出方式,是为了避免access日志文件过大,或者修改为apache的输出格式为我们想要的格式。例出,我们只关注其中某项有用的信息,其他项分析上用不到,我们就可以把该项自定义时,直接去掉或者我们根本用不到日志功能,可以直接将其关掉。
具体操作,可以通过打开httpd.conf文件,找到LogFormat项,就于自定义日志的输出内容格式;CustomLog用于修改日志的轮询格式。例如我们想access一旦达到100M就轮询,可以如下做:
1#CustomLog "logs/access.log" common //注释掉默认的日志记录方式
2CustomLog "|bin/rotatelogs.exe -l logs/access-%Y-%m-%d-%H-%M-%S.log 100M" common //定制的日志记录方式
注:rotatelogs是apache自带的一个小工具,其使用参数为:
1rotatelogs [ -l ] logfile [ rotationtime [ offset ]] | [ filesizeM ]
当然也可以通过时间偏移方式,修改日志的生成:
1CustomLog "|/bin/rotatelogs 日志存放目录/%Y%m%d_access.log 86400 480" common
86400:秒,24小时,表示生成的日志文件按天滚动,也就是每天生成一个日志文件;480:分,时间偏移。
四、php安全配置
1.启用安全模式
在xamppphp目录下,找到php.ini的配置文件,找到:
1safe_mode = Off //改为On
2.必须禁用一些高危函数,其中,可以保留phpinfo这个函数
1disable_functions = exec,passthru,shell_exec,system,popen,proc_open,proc_close,curl_exec,curl_multi_exec,par se_ini_file,show_source,dl,passthru,escapeshellarg,escapeshellcmd
3.禁止显示PHP的版本
1expose_php = Off
最后,对于mysql的备份,我们可以通过批处理脚本配置合计划任务进行备份。也可以通过工具的实现计划备份,如官方的工具MySQL Administrator,找到back项,通过Schedule选项卡生成备份任务,通过计划任务进行调度。
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/xampp-safe-config/2118.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.