xampp安全配置

2012年12月20日 发表评论 阅读评论

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服务器,访问某个禁止文件或者不存在的文件时,会显示服务器的版本信息,具体如下:

Apache/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文件,修改以下两处:

ServerTokens Full 改为 Prod //不允许在http响应里返回服务器的版本信息
ServerSignature On改为off //不允许显示服务器的特征信息

3、注释mod_status和mod_info模块

这两个模块主要用于查看apache的运行状态和服务器信息的,一般我们很少会用到,除非在进行apache性能调优和状态查看时,会用到以上两个模块。所以建议把这个两模块的配置注释掉。注释方法十分简单,打开httpd.conf文件,打到以上两个模块所在的行添加#,并重启apache服务使配置生效就OK了。

如需使用以上两个模块,请打开xamppapacheconfextra目录下的httpd-info.conf文件,将其中server-status、server-info两个配置修改如下:

server-status

<Location /server-status>
    SetHandler server-status
     Order deny,allow
     Deny from all
</Location>

server-info

<Location /server-info>
    SetHandler server-info
     Order deny,allow
     Deny from all
     Allow from 127.0.0.1//表示只允许本机访问,前提是要加载mod_info.so模块
</Location>

在原配置新增访问控制部分。

4、关闭不必要的目录索引功能

禁用目录索引功能的示例如下:

<Directory "C:/xampp/htdocs">
Options -Indexes FollowSymLinks //清除FollowSymLinks,或者直接使用Options none
</Directory>

"-"号代表的是取消某功能,"+"或者什么都没有,表示对某目录增加某功能属性。

三、apache性能优化

1、使用多路处理模块

打开xamppapacheconfextrahttpd-mpm.conf文件,找到winnt配置部分,修改为如下:

<IfModule mpm_winnt_module>
    ThreadsPerChild      250
    MaxRequestsPerChild    5000 //默认值为0
    Win32DisableAcceptEx  //这个根据自己的情况,注释掉
</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就轮询,可以如下做:

#CustomLog "logs/access.log" common  //注释掉默认的日志记录方式
CustomLog "|bin/rotatelogs.exe -l logs/access-%Y-%m-%d-%H-%M-%S.log 100M" common  //定制的日志记录方式

注:rotatelogs是apache自带的一个小工具,其使用参数为:

rotatelogs [ -l ] logfile [ rotationtime [ offset ]] | [ filesizeM ]

当然也可以通过时间偏移方式,修改日志的生成:

CustomLog "|/bin/rotatelogs 日志存放目录/%Y%m%d_access.log 86400 480" common

86400:秒,24小时,表示生成的日志文件按天滚动,也就是每天生成一个日志文件;480:分,时间偏移。

四、php安全配置

1.启用安全模式
在xamppphp目录下,找到php.ini的配置文件,找到:

safe_mode = Off //改为On

2.必须禁用一些高危函数,其中,可以保留phpinfo这个函数

disable_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的版本

expose_php = Off

最后,对于mysql的备份,我们可以通过批处理脚本配置合计划任务进行备份。也可以通过工具的实现计划备份,如官方的工具MySQL Administrator,找到back项,通过Schedule选项卡生成备份任务,通过计划任务进行调度。




本站的发展离不开您的资助,金额随意,欢迎来赏!

You can donate through PayPal.
My paypal id: itybku@139.com
Paypal page: https://www.paypal.me/361way

分类: http/html/web 标签: ,
  1. 本文目前尚无任何评论.