继上篇《PHP网站被挂马防御战》
Php本身也有一些安全机制,如下:
1、禁用shell函数和com组件;(上篇已提到)
2、限制php作用域;(上篇已提到)
3、启动php安全模式;
4、其他安全设置;
5、降低php的系统权限;
一、php安全模式
php安全模式是个php内嵌的安全机制,能够控制php中的shell函数,比如system(),同时把大部分文件操作函数进行了权限控制。
Php安全模式默认是关闭的,可以修改php配置启动这个功能:
safe_mode = on
//只打开 safe_mode作用不大,还需要同时指定safe_mode_exec_dir和safe_mode_include_dir目录。
safe_mode_exec_dir = D:/htdocs/www/lib
//设定php安全模式下的可执行程序目录,建议不要直接指向网站根目录
safe_mode_include_dir = D:/htdocs/www/include
//设定php安全模式下的包含文件目录,建议不要直接指向网站根目录
safe_mode_protected_env_vars = LD_LIBRARY_PATH
//设置安全模式下限制用户不能更改的环境变量
针对以上几点,就要求php程序在设计的时候有一定的规划。哪个目录是执行程序的目录,哪个目录是上传文件的存放目录,等等要规划好。
正常情况下,文件上传存放的目录不能有执行的权限;可执行目录就不要放用户上传的文件,而且要定期检查可行性文件目录是否有改动。
二、会话安全设置
session.use_only_cookies = On
//是否仅仅使用cookie在客户端保存会话ID,打开这个选项可以避免使用URL传递会话带来的安全问题。禁用Cookie的客户端将使会话无法工作,但是所有浏览器默认都不会禁用Cookie。
session.use_trans_sid = Off
//是否使用明码在URL中显示SID(会话ID)。默认是禁止的,因为它会给你的用户带来安全危险:基于URL的会话管理总是比基于Cookie的会话管理有更多的风险,所以应当禁用。
session.hash_function = 1
//生成SID的散列算法。设为0采用MD5(128 bits),设为1采用SHA-1(160 bits)。SHA-1的安全性比MD5高一些
三、php错误信息
display_errors = Off
//是否将错误信息作为输出的一部分显示。强烈建议你关掉这个特性,并使用错误日志代替(参看下面)。在最终发布的web站点打开这个特性可能暴露一些安全信息,
define_syslog_variables = Off
//是否定义各种系统日志变量,建议关闭
error_log =
//将错误日志记录到哪个文件中。该文件必须对Web服务器用户可写。建议留空,错误则被记录到Web服务器的错误日志中。
log_errors = On
//是否在日志文件里记录错误
ignore_repeated_errors = On
//记录错误日志时是否忽略重复的错误信息。错误信息必须出现在同一文件的同一行才被被视为重复。建议开启,可以减少日志记录
四、其他安全设置
register_globals = Off
//关闭注册全局变量;全局变量这个功能本身在程序是很容易实现的,没必要php帮我们转换。而且php自动将post,get等数据都注册成全局变量,这是非常危险的。
magic_quotes_gpc = On
//开启引号转义功能;开启这个功能可以在一定程度防止SQL注入。Php会自动将post,get过来的数据做转义。
expose_php = Off
//关闭php版本信息;关闭该功能可以防止别人获取服务器的php版本信息,然后利用该版本的漏洞进行攻击。
allow_url_include = Off
//禁止include/require远程文件,降低木马攻击风险
enable_dl = On
//禁止用dl()方式加载php扩展
五、降低php的系统权限(针对windows / apache / php)
在windows平台下搭建的apache默认是system权限,所以考虑安全性,就有需要给apache降低权限。
net user user_apache pass_123 /add
net localgroup users user_apache /del
以上建立了一个不属于任何组的用户user_apache,密码是pass_123。
我们打开系统服务,点apache服务的属性,我们选择登录,选择此账户,我们填入上面所建立的账户和密码,重启apache服务。
这样,apache运行在低权限下了。
总结,通过修改php配置可以提高php网站安全性,但也没有绝对的安全,这就需要我们平时去维护,定期检查程序,做好备份,查看apache访问和错误日志,检查系统安全等等
分享到:
相关推荐
在Windows环境下配置Apache SSL是一项关键任务,特别是在搭建安全的HTTPS网站时。Apache是广泛应用的开源Web服务器,而SSL(Secure Sockets Layer)或其更新版本TLS(Transport Layer Security)则是提供网络通信...
在Windows操作系统中,搭建PHP5和Apache...文档"Windows下PHP5和Apache的安装与配置.doc"应包含更详细的步骤和注意事项,可作为参考。通过这个教程,开发者可以建立自己的本地开发环境,进行PHP网站的开发和调试工作。
在Windows环境下搭建Apache、PHP和MySQL的开发环境是许多初学者必须经历的步骤,这个过程可能会遇到一些挑战,但只要遵循正确的步骤,就能轻松完成。本文将详细介绍如何配置这三个组件,帮助初学者顺利搭建Web开发...
Apache+PHP+MySQL 在 Windows 下的安装与配置图解(最新版) 本资源摘要信息将详细介绍 Apache、PHP 和 MySQL 在 Windows 平台下的安装和配置过程。该资源提供了详细的图解和一步步的安装指南,使得用户可以轻松地...
### Windows 下 Apache+FastCGI+PHP 的安装与配置详解 #### 一、概述 本文主要介绍了在 Windows 系统环境下如何安装与配置 Apache、FastCGI 和 PHP,使之能够协同工作并支持 PHP 应用程序的运行。通过本文的学习,...
* Windows 下搭建 Apache 和 PHP 和 MySQL 环境需要下载和安装相关软件,配置 Apache 服务器支持 PHP 文件的解析,并测试 Apache 服务器。 * 在实际使用中,需要根据具体情况进行配置和调整,以确保服务器的稳定运行...
### Windows下Apache2.2.8及Php5.2.5的安装与配置方法 #### 一、前言 在Web开发领域,Apache服务器作为一款免费、开源且跨平台的Web服务器软件,被广泛应用于搭建各种网站和服务。而PHP作为一种常用的服务器端脚本...
在Windows环境下搭建PHP5、Apache和MySQL的组合是常见的Web开发环境配置,这种配置被称为WAMP(Windows、Apache、MySQL、PHP)。以下是一份详细的步骤指南,帮助你完成这一过程。 1. **安装Apache服务器**: - ...
在本文中,我们将详细介绍如何在 Windows 平台下配置 Apache 服务器,并将其与 PHP 和 MySQL 集成,以实现一个完整的 Web 开发环境。在下面的内容中,我们将一步步地指导您如何安装和配置 Apache、PHP 和 MySQL,...
以上就是Apache、PHP和MySQL在Windows下的安装与配置过程。这个组合为开发者提供了一个强大而灵活的本地开发环境,可以用于创建和测试动态网页应用程序。在实际操作中,可能需要根据个人需求进行更详细的配置和调整...
### Windows 下 PHP 5.2.5 和 Apache 2.2.6 的安装与配置 在互联网技术领域中,Apache Web 服务器与 PHP 经常被一同使用来搭建功能强大的 Web 开发环境。Apache 作为最流行的 Web 服务器之一,其易用性和免费特性使...
### Windows 下 PHP5 和 Apache 的安装与配置 在 Windows 系统中安装并配置 PHP5 和 Apache 是构建 Web 开发环境的重要步骤。本文将详细介绍如何在 Windows 平台上完成这一过程,并确保 PHP 和 Apache 能够顺利运行...
### 在Windows下配置Apache+PHP+MySQL的知识点详解 #### 一、背景介绍 随着互联网技术的发展,Web应用变得越来越重要。在开发Web应用程序时,一个常见的开发环境配置是使用Apache作为Web服务器,PHP作为服务器端...
下面我们将深入探讨如何在Windows 7下进行Apache、PHP和MySQL的完美配置。 首先,你需要准备以下软件: 1. Windows 7操作系统 2. PHP 5.2.X 版本 3. Apache HTTP Server 2.2 版本 4. MySQL 5.5 版本 配置步骤: 1....
虽然Apache在默认配置下相对安全,但建议你安装SSL/TLS证书以实现HTTPS加密,并通过修改httpd.conf中的配置启用SSL支持。 通过以上步骤,你便能在Windows环境中成功安装和配置Apache HTTP Server。记住,配置文件...
这个文件将用于存储所有的PHP配置。 4. **添加PHP到PATH**: 和Apache一样,将PHP的路径添加到系统环境变量`PATH`中。 5. **配置Apache与PHP的集成**: 在Apache的配置文件`conf/httpd.conf`中添加以下内容,使...
Apache 与 PHP 配置是将这两个开源软件结合在一起,以提供动态网页服务。Apache 是一个流行的网络服务器,而 PHP 是一种广泛使用的服务器端脚本语言,常用于创建交互式 Web 应用程序。 **Apache 的安装与配置** 1....
这里,"C:/php/php7apache2_4.dll"是你PHP安装目录下的PHP模块,"C:/php"是你的PHP配置文件目录。 保存并关闭httpd.conf,然后重启Apache服务。在命令行中运行`apachectl restart`或者通过服务管理器来重启。 然而...