Windows+IIS+PHP安全配置之php篇

既然是进行windows下IIS+PHP的安全配置,首先要进行安全配置的就是PHP了。估计大多数新手所了解的配置好php环境只是能使服务器正常解析PHP,但并没有做出安全方面的配置,里面还有很多的默认设置是不安全的。在网上很多的配置php环境的教程中也并没有介绍PHP安全方面的配置。

要配置PHP,首先想到的文件是什么?对,php.ini,现在让我们先来了解一些php.ini的基本概念。在php.ini中,配置指令的格式如下:directive = value 指令名(directive)是大小写敏感的!所以”foo=bar”不同于”FOO=bar”。值(value)可以是:
1. 一个数字,整数或浮点数,如:0,20,1024,0.5等等)
2. 一个字符串,如:”foo”、”x:\php\ext”
3. 一个PHP常量(如:E_ALL,M_PI)
4. 一个INI常量(On,Off,none)
5. 一个表达式(如:E_ALL & ~E_NOTICE)
还有另外一个是设置布尔值,1为On就是开启,0为Off就是关闭。php.ini分了很多部分,例如:模块配置,php全局配置,数据库配置,and so on…(卖弄一下三级半的E文)。

了解了基本概念以后我们就可以开始进行配置了,Let’s go!

1、register_globals
说明:这个配置影响到php如何接收传递过来的参数,说白了register_globals的意思就是注册为全局变量,所以当该参数为值On的时候,传递过来的值会被直接的注册为全局变量直接使用,而当该参数值为Off的时候,我们需要到从特定的数组里去得到它。很多的php漏洞一大部分是因为Register_Globals为On的时候被利用的,所以强烈推荐将这个参数修改成Off,php目前的最高版中此参数都是默认是Off的,如果你用的版本比较老的话一定要修改这里。

2、magic_quotes_gpc
说明:如果你把magic_quotes_gpc设置成了Off,那么php就不会对4种字符’ (单引号), ” (双引号), \ (反斜线) 和 空字符进行转义,那这样的话就会造成服务器可能会被非法注入的可能。但是如果你把Magic_quotes_gpc设置成On的话,php就会给以get、post等方式提交来的变量中含有的这四种字符加上\反斜扛进行转义,这样就会大大地提高php的安全性。强烈推荐将Magic_quotes_gpc设置为On。

3、display_errors
说明: php的display_errors参数就是帮助开发者定位和确定这些错误的。可是如果php提供的这些信息被黑客了解到的话,这就不妙了。这对于黑客来说可是非常重要的信息,因为很多时候的渗透都需要知道web目录,例如webshell的写入等等。所以强烈推荐大家把这个参数设置成Off。

4、safe_mode
说明:就是我们常说的安全模式(在一些vps控制面板和一些程序后台经常会看到这个)。php的安全模式是个非常重要的内嵌的安全机制,能够控制一些php中的函数,比如system()等函数,同时把很多文件操作函数进行了权限控制,也不允许对某些关键文件的访问,比如/etc/passwd,但是默认的php.ini是没有打开安全模式的,把它打开。safe_mode = on。

5、open_basedir
说明:使用open_basedir选项能够控制PHP脚本只能访问指定的目录,这样能够避免PHP脚本访问不应该访问的文件,一定程度上限制了webshell的危害,一般可以设置为只能访问网站目录(假设你的网站目录为E:\www):open_basedir = E:\www

6、disable_functions
说明:使用disable_functions可以限制一些对于系统来说威胁很大的函数。
例如,我们通常在配置完php环境后,都会骄傲的使用phpinfo()函数来打印php系统信息,这是确实是很爽的,但对于一些骇客来说更爽,因为phpinfo()函数可以打印出绝大多数php的环境信息。还有入侵者可以利用system(),exec()等函数来执行一些系统命令等等。所以确定我们环境没问题后,需要及时禁用掉这些函数。推荐过滤的函数如下。disable_functions = phpinfo,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server。如果对某个函数不了解的话,可以google搜索得到函数的作用,然后来决定您自己的服务器(或您的网站程序)是否需要禁用。

7、com.allow_dcom
说明:Windows平台下的PHP脚本平台存在一个安全漏洞,使得PHP设置即使在安全模式下(safe_mode),仍旧允许攻击者使用COM()函数来创建系统组件来执行任意命令。漏洞出现的原因是由于在安全模式下的PHP平台虽然system();pathru()函数被禁止,但是com.allow_dcom的设置依旧是为true。以至于攻击者可以使用COM()函数创建系统组件对象来运行系统命令。如果是默认的Apache设置或者Web服务器以Loacalsystem权限或Administrators权限运行,攻击者可以使用这个漏洞来提升权限。所以我们必须要关闭掉com.allow_dcom,这个参数默认是True,我们需要把这个参数修改成com.allow_dcom=false。

8、expose_php
说明:这个参数决定是否暴露PHP被安装在服务器上。如果这个参数设置为On的话就会把php的版本等泄露出来了。例如默认会在在服务器的信息头中加上其签名:X-Powered-By: PHP/5.3.7。推荐设置为Off。

好了,关于php.ini方面的设置今天先讲到这里,现在可以ctrl+s一下,然后去重启你的IIS了,否则你的修改不会生效。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值