欢迎您,零度科技专业海外服务器租用
公司电话: 24小时电话: 

当前位置:首页>新闻动态>网络安全

目录导航

windows 2003 IIS & PHP 安全设置教程

添加于 2013-04-14   IIS安全设置windows20032003安全设置
网络安全

安全的目的在于让网站在最小化环境运行,比如可以设置我们的站点只运行PHP,不支持asp和asp.net,让特定的目录或者子网站不能执行PHP脚本,最终就算让黑客进入了你的网站,上传了文件也不能执行webshell。今天喻名堂借鉴网络上的一些安全设置教程整理了下windows下IIS+PHP的安全配置过程,按照此过程一步一步的进行配置一定能让你的网站非常安全坚固。

一、php.ini文件变态配置

既然是进行windows下IIS+PHP的安全配置,首先要进行安全设置的就是PHP了,在上篇文章中只对php.ini做了一些必要的设置,使它能解释PHP的脚本,里面还有很多的默认设置是不安全的。
我们首先来了解一些php.ini的基本概念性。设置指令的格式如下:directive = value 指令名(directive)是大小写敏感的!所以"foo=bar"不同于"FOO=bar"。值(value)可以是:
1. 用引号界定的字符串(如:"foo")
2. 一个数字(整数或浮点数,如:0,1,34,-1,33.55)
3. 一个PHP常量(如:E_ALL,M_PI)
4. 一个INI常量(On,Off,none)
5. 一个表达式(如:E_ALL & ~E_NOTICE)
还有另外一个是设置布尔值,1为On就是开启,0为Off就是关闭。php.ini分了很多部分,例如:模块部分,php全局配置,数据库配置,等等。了解了基本概念以后我们就可以开始进行配置了。
设置参数以及注解
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就会给$_POST,$_GET,$_COOKIE提交的变量中如果有上面四种字符的话就会加上反斜扛.这样就会大大地提高php的安全性。强烈推荐将Magic_quotes_gpc设置为On。
3、display_errors
注解: php的display_errors参数就是帮助开发者定位和确定这些错误的。可是如果php提供的这些信息被黑客了解到的话,这就不妙了。这对于黑客来说可是非常重要的信息,因为很多时候的渗透都需要知道web目录,例如webshell的写入等等。所以强烈推荐大家把这个参数设置成Off。在上一篇文章当中已经解释过这个参数并设置成Off了,但还是列举出来以示强调
4、safe_mode
注解:就是我们常说的安全模式。php的安全模式是个非常重要的内嵌的安全机制,能够控制一些php中的函数,比如system()等函数,同时把很多文件操作函数进行了权限控制,也不允许对某些关键文件的访问,比如/etc/passwd,但是默认的php.ini是没有打开安全模式的,把它打开。safe_mode = on。
5、open_basedir
注解:使用open_basedir选项能够控制PHP脚本只能访问指定的目录,这样能够避免PHP脚本访问不应该访问的文件,一定程度上限制了webshell的危害,一般可以设置为只能访问网站目录(假设网站目录为E: est):open_basedir = E: est
6、disable_functions
注解:使用disable_functions可以限制一些对于系统来说威胁很大的函数。
例如,我们在第一部分中看到的有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的版本等泄露出来了。推荐设置为Off。
注意:修改完php.ini以后,必须重新启动IIS,不然你设置的内容不会即时生效

零度科技原文链接:http://www.ldisp.com/a/safe/2013/1543.shtml

上一篇:Windows批量添加防火墙例外端口的方法
下一篇:Windows下MySQL使用独立用户提高服务器安全

 
了解零度?

零度科技主营全球服务器租用,如果您有服务器租用需求请联系

海外服务器租用

推荐香港、美国、韩国。提供站群服务器、高防服务器租用

海外特价服务器

关注零度特价服务器频道,了解全球特价服务器。

6

业务咨询

    技术服务

      特价活动
        全站搜索
        热门搜索:
        会员
        0通知
        客服
        0特价
        搜索
        TOP
        香港高防服务器,远程桌面,韩国服务器,nginx,反向代理