您的位置:首页 > 运维架构 > Apache

php、Apache网站常用安全配置

2013-12-05 22:51 435 查看

一、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中用分号分隔目录。

以上仅限本人在平时开发过程中的一些总结,转载请注明出处,欢迎大家讨论交流。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: