php、Apache网站常用安全配置

原创 2013年12月05日 22:51:00

一、Apache配置

1、隐藏Apache签名
在请求服务器后返回的文档签名会输出服务器签名,包含了服务器的版本等信息。在http.conf文件中将ServerSignature配置为Off时可以不发送相应信息:
ServerSignature = Off
将ServerTokens可以设置为以下几个基本的值:Full、Major、Minimal、Os、Prool、Minor。
2、修改文档扩展名
AddType application/x-http-php  xxx(其他扩展名)
3、隐藏文档根目录
    将服务器的配置文件放在DocumentRoot文件夹之外,一般将DocumentRoot与Apache服务器安装路径也分开。
4、拒绝范围某些扩展名的文件
<Files *.inc>
    Order allow,deny
    Deny from all
</Files>


上述配置可以限制访问所有的inc配置文件。
5、使用加密传输
如md5、hash算法、mcrypt包等。
6、使用php伪静态
在http.conf文件中开启Rewrite模块,找到如下:#LoadModule rewrite_module modules/mod_rewrite.so,开启rewrite,去点前面"#"。然后设置Allow Overide All。查找apache配置文件找到如下
<Directory /> 
	Options FollowSymLinks 
	AllowOverride None 
</Directory> 
将AllowOverride None改为 AllowOverride All
可以使用.htaccess文件实现Url重写和伪静态:
<IFMODULE mod_rewrite.c>
	RewriteEngine On
	#RewriteBase /  (若文件在根目录下不必定义)
	#RewriteRule ^t_(.*).html$ test.php?id=$1 [NC](打开test.php以t_id.html  比如 t_2.html  页面输出 id=2)
	RewriteRule ^([0-9]+)$ test.php?id=$1 [NC](直接输入id  比如 localhost/test/2  页面输出 id=2)
	RewriteRule ^index.html$ index.php [NC](直接输入index.html可打开index.php这个页面)
</IFMODULE>

二、php配置

1、隐藏php版本信息
隐藏php就是隐藏返回给客户端的Header中的“X-Powered-By:php/5.3”项的信息。将php.ini文件中的expose_php设置为0,(默认为1表示添加到服务器签名)
expose_php = 0
2、禁用部分函数

disable_functions = system,exec,shell_exec,passthru,popen,dl,phpinfo
    该指令接受一个用逗号分隔的函数名列表,以禁用特定的函数。

3、不显示错误

display_errors = Off
    是否将错误信息作为输出的一部分显示。在最终发布的web站点上,强烈建议关掉这个特性,并使用错误日志代替。打开这个特性可能暴露一些安全信息,例如web服务上的文件路径、数据库规划或别的信息。

4、关闭远程访问

allow_url_open = Off
    是否允许打开远程文件,建议关闭,如果网站需要采集功能就打开。

5、开启安全模式

safe_mode = On
    是否启用安全模式。打开时,PHP将检查当前脚本的拥有者是否和被操作的文件的拥有者相同,相同则允许操作,不同则拒绝操作。开启安全模式的前提是你的目录文件权限已完全分配正确。

6、目录权限

open_basedir = /var/www/html/aaa:/var/www/html/bbb
    目录权限控制,aaa目录中的php程序就无法访问bbb目录中的内容。反过来也不行。在Linux/UNIX系统中用冒号分隔目录,Windows中用分号分隔目录。

以上仅限本人在平时开发过程中的一些总结,转载请注明出处,欢迎大家讨论交流。



Apache和PHP的安装配置以及外网访问自己的网站

Apache的windows安装与大多数windows安装程序类似。 这里
  • u014585658
  • u014585658
  • 2014年04月08日 16:39
  • 7090

阿里云CentOS7 搭建apache+php+mysql环境,并配置多站点多域名

阿里云CentOS7 搭建apache+php+mysql环境 第一步:安装apache(httpd 2.4.6) 安装命令:yum -y install httpd  查看httpd版本:rpm...
  • baidu_28523317
  • baidu_28523317
  • 2017年06月26日 15:06
  • 2083

Apache+Mysql+PHP环境配置详细过程

Apache+Mysql+php的手动配置
  • ZWX2445205419
  • ZWX2445205419
  • 2016年07月07日 16:15
  • 3025

教你如何配置Apache的PHP网站开发环境(如有疑问,敬请留言)

一、Appserv软件简介         AppServ 是 PHP 网页架站工具组合包,作者将一些网络上免费的架站资源重新包装成单一的安装程序,以方便初学者快速完成架站,AppServ 所包含的...
  • zhengzhihust
  • zhengzhihust
  • 2012年08月03日 00:57
  • 1916

PHP开发网站,第一步环境配置Apache2.4服务器

现在有很多小白,想学习PHP,但是一看到复杂的配置,就退缩了,或者搞了很久的配置,也不知道问题出在那里,配置总是不成功,也就没有了学PHP的激情,为了让大家学习PHP不退缩,要坚持,于是我今天,就想给...
  • jy03169496
  • jy03169496
  • 2016年03月19日 23:49
  • 609

php网站配置apache

1、打开Apache配置文件例如:D:/ap/apache/conf/httpd.conf 文件找到文件的38行 修改为Define SRVROOT “D:/ap/apache”; 2、cmd 进入...
  • jmkweb
  • jmkweb
  • 2017年02月21日 15:41
  • 141

apache安全配置及常用配置

1.时区设置 有些时候,当你在PHP里使用date或mktime函数时,由于时区的不同,它会显示出一些很奇怪的信息。下面是解决这个问题的方法之一。就是设置你的服务器的时区。你可以在这里找到所有支持的...
  • lihaiboas1
  • lihaiboas1
  • 2012年04月23日 14:24
  • 608

apache虚拟主机配置及常用安全配置

环境准备: 服务器系统:CentOS 6.5 安装lamp环境: yum -y install mysql mysql-server php php-mysql httpd php-gd...
  • reblue520
  • reblue520
  • 2016年09月06日 14:19
  • 421

apache,php常用配置

apache常用配置 1. ServerRoot ServerRoot "D:/program/myplatform/Apache2.2" 设置apache的安装目录 2. Listen Li...
  • tdcqfyl
  • tdcqfyl
  • 2016年07月14日 16:43
  • 379

Apache部署PHP常用配置

一般用默认的配置,但是对于不同的项目来说所对应的需求是不同的,比如:安全等 ,所以我们应该为不同的项目采用不同的配置策略。 安装php5、apache2.0、mysql 5.0等软件,安装步骤就不详...
  • lifuxiangcaohui
  • lifuxiangcaohui
  • 2015年06月18日 18:03
  • 1375
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:php、Apache网站常用安全配置
举报原因:
原因补充:

(最多只允许输入30个字)