PHP是非常强大的服务器端脚本语言,但是强大的功能总是伴随着重大的危险,PHP本身老版本有一些问题,比如在
php4.3.10和php5.0.3以前有一些比较严重的bug,所以推荐使用新版。另外,目前闹的轰轰烈烈的SQL
Injection也是在PHP上有很多利用方式,所以要保证安全,PHP代码编写是一方面,PHP的配置更是非常关键。在这节里,你将学习修改
PHP.ini文件来阻止一些PHP潜在的危险因素 。
一、 php.ini文件的选择
设定有效的 PHP
配置文件,php.ini。压缩包中包括两个 ini 文件,php.ini-dist 和 php.ini-recommended。建议使用
php.ini-recommended,因为此文件对默认设置作了性能和安全上的优化。仔细阅读此文件中的说明并研究 ini 设置
一章来亲自人工设定每个项目。如果要达到最佳的安全效果,则最好用这个文件,尽管 PHP 在默认的 ini 文件下也工作的很好。将选择的 ini
文件拷贝到 PHP 能够找到的目录下并改名为 php.ini。PHP 默认在 Windows 目录下搜索 php.ini:
在 Windows 9x/ME/XP 下将选择的 ini 文件拷贝到 %WINDIR%,通常为 c:\windows。
在 Windows NT/2000 下将选择的 ini 文件拷贝到 %WINDIR% 或 %SYSTEMROOT% 下,通常为 c:\winnt 或 c:\winnt40 对应于服务器版本。
如果在 Windows NT,2000 或 XP 中使用了 NTFS,确保运行 webserver 的用户名对 php.ini 有读取的权限(例如使其对 Everyone 可读)。
php.ini -dist 一般用于程序开发。
php.ini -recommended 用于线上服务使用。
二、 php.ini文件的修改
php的安全模式是个非常重要的内嵌的安全机制,能够控制一些php中的函数,比如system(),同时把很多文件操作函数进行了权限控制,也不允许对某些关键文件的文件,比如/etc/passwd,但是默认的php.ini是没有打开安全模式的,我们把它打开。
1、找到"safe_mode=off"改为"safe_mode=on"
象一些能执行系统命令的函数shell_exec()和``被禁止,其它的一些执行函数如:exec(), system(),
passthru(),popen()将被限制只能执行safe_mode_exec_dir指定目录下的程序。如果你实在是要执行一些命令或程序,找到
以下:
safe_mode_exec_dir =
指定要执行的程序的路径,如:
safe_mode_exec_dir = c:\wwwroot
然后把要用的程序拷到c:\wwwroot目录下,这样,象上面的被限制的函数还能执行该目录里的程序
2、找到"display_errors=on"改为"display_errors=off"
一般php在没有连接到数据库或者其他情况下会有提示错误,一般错误信息中会包含php脚本当前的路径信息或者查询的SQL语句等信息,这类信息提供给黑客后,是不安全的,所以一般服务器建议禁止错误提示 。
display_errors = Off
log_errors = On
同时也要设置错误日志存放的目录 找到下面这行
;error_log = filename
去掉前面的;注释,把filename改为指定文件
error_log = D:/usr/php_error.log
3、找到"disable_functions="改为:"disable_functions=phpinfo,system,exec,passthru,shell_exec,popen,is_dir".
我们觉得不希望执行包括system()等在内的能够执行命令的php函数,或者能够查看php信息的phpinfo()等函数,那么我们就可以禁止它们:
4、查找:magic_quotes_gpc 如果是Off的话改成On
打开magic_quotes_gpc来防止SQL注入。
5、查找:register_globals
在PHP中提交的变量,包括使用POST或者GET提交的变量,都将自动注册为全局变量,能够直接访问,这是对服务器非常不安全的,所以我们不能让它注册为全局变量,就把注册全局变量选项关闭:
6、查找:open_basedir 后面增加 /www/ /*说明:www为网站程序所放文件*/
这个选项可以禁止指定目录之外的文件操作,还能有效地消除本地文件或者是远程文件被include()等函数的调用攻击。
7、expose_php设为off ,这样php不会在http文件头中泄露信息。
我们为了防止黑客获取服务器中php版本的信息,可以关闭该信息斜路在http头中 。
8、设置“allow_url_fopen”为“off” 这个选项可以禁止远程文件功能 。
分享到:
相关推荐
以下是一些重要的PHP安全配置步骤: 1. **启用安全模式**:安全模式是PHP的一个内置功能,它可以限制某些潜在危险的函数,如`system()`,并控制文件操作。开启安全模式的配置是:`safe_mode = on`。但需要注意的是...
【PHP安全配置(3)】主要讨论了两个关键的安全议题:文件上传和命令执行,以及相关的防范措施。 1. **文件上传安全** - **PHP的文件上传机制**:当用户上传文件时,PHP会将文件保存在由`php.ini`配置文件中的`...
本篇文章将深入探讨两个重要的PHP安全配置点:取消其他用户对常用、重要系统命令的读写执行权限,以及去除Apache日志的其他用户读权限。 首先,让我们关注第一个安全配置——限制对系统命令的访问。在多用户环境中...
另外,目前闹的轰轰烈烈的SQL Injection也是在PHP上有很多利用方式,所以要保证安全,PHP代码编写是一方面,PHP的配置更是非常关键。 我们php手手工安装的,php的默认配置文件在 /usr/local/apache2/conf/php.ini,...
Apache是最常见的PHP集成Web服务器,对于Apache的安全配置,强烈推荐采用chroot jail(沙盒)技术。通过这种方式,Apache在自己的独立环境中运行,即使发生漏洞,也不会对整个系统造成严重影响。然而,使用chroot的...
在PHP的环境中,确保安全配置至关重要,特别是针对Web服务器安全和PHP本身的问题。本文将深入探讨这两个关键点,以帮助你构建一个更坚固的Web应用防护体系。 首先,Web服务器安全是基础。PHP通常作为Apache Web...
【PHP安全配置】是保障网站安全的关键步骤,尤其是在使用PHP作为服务器端脚本语言时,因为其强大功能可能带来的风险不容忽视。安全模式是PHP提供的一种基础防护机制,旨在为多用户共享的Web服务器创建一个相对安全的...
#### 一、PHP安全模式概述 PHP的安全模式是一项重要的内置安全机制,主要用于限制一些潜在危险的功能,确保服务器安全。以下是对几个关键配置项的详细解读: #### (1) 开启PHP的安全模式 安全模式能够对一系列PHP...
PHP的配置非常灵活,可以通过php.ini, httpd.conf, .htaccess文件进行设置,还可以在脚本程序里使用ini_set()及其他的特定的函数进行设置。通过phpinfo()和get_cfg_var()函数可以得到配置选项的各个值。
PHP其实不过是Web服务器的一个模块功能,所以首先要保证Web服务器的安全。PHP可以和各种Web服务器结合,本文也只讨论Apache。
木翼下载系统中的PHP安全配置方法是确保整体系统安全的关键环节,因为PHP作为Web服务器的一个模块,其安全性直接影响整个系统的稳定与安全。本文将主要探讨如何优化PHP的安全配置,以防范潜在的威胁。 首先,要关注...
本文将对PHP安全配置的一些关键点进行详细说明,并总结一些常见的配置错误。 首先,`register_globals`是一个早期PHP版本中使用的特性,允许全局变量直接从URL参数中自动创建。然而,这种做法容易导致安全漏洞,...
PHP安全配置检查器 检查当前PHP配置是否存在潜在的安全漏洞。 只需从您的Web服务器访问该文件或在CLI上运行即可。 作者 该软件是由的Ben Fuhrmannek编写的,自动化php.ini检查并花费更多的时间执行任务。 理念 一个...
#### PHP安全配置:精细化控制与最佳实践 PHP的安全配置可通过多个层面进行,包括**php.ini**, **httpd.conf**, **.htaccess**文件以及脚本中的`ini_set()`函数。不同的配置选项根据其属性(如PHP_INI_SYSTEM, ...
**PHP配置安全检查工具PCC详解** ...通过自动检测和报告不安全配置,它可以帮助系统管理员快速定位并解决潜在的安全隐患,提升服务器的整体安全性。因此,无论是在开发还是运维阶段,PCC都是一个值得信赖的伙伴。
3389远程终端安全配置全攻略 .php
三、安全配置 1. display_errors:在生产环境中,为了安全,应关闭display_errors,避免敏感信息泄露。 2. error_reporting:控制错误报告级别,生产环境通常设置为E_ALL & ~E_NOTICE & ~E_DEPRECATED,避免显示非...