方式一:.htaccess控制,适用于没有服务器管理权限。
在可写文件夹的目录下,建一个.htaccess文件,内容为:
<Files ~ ".php">
Order allow,deny
Deny from all
</Files>
方式二:修改Apache配置文件,适用于有服务器管理权限。
配置中增加如下内容:
<Directory "<path_to_writeable_dir>">
<Files ~ ".php">
Order allow,deny
Deny from all
</Files>
</Directory>
(一)WEB站点建立
1)首先要先安装相应的服务,在Windows添加组件里选择应用程序服务器 证书服务。
2)然后便出现下图,是按CA证书时需要做的设置
3)添加公司名称
4)然后是证书的库文件
5)温馨提示 呵呵 点是就可以了。要不然不让继续阿
6)接着做WEB站点 点开始—管理工具---IIS管理器,右击网站—新建网站
7)网站描述,将会显示在你的管理服务器上的名字
8) 给网站配个 IP地址 80端口默认打开
9) 选择路径,前提是你要先建立一个文件夹作为网站的文件存放地
10) 客户访问网站的一些权限设置
11) 结束后,右击新建的网站 选择浏览,会看到下图情况。之所以没有显示正常的网页是因为首页无法显示,所以要相应得设置一下
12)我的网站的首页是index.html
13)右击网站—属性—文档—添加,把自己网站的格式加入
14) 最后重起一下网站,然后再次浏览就成功了
(二)FTP站点的设置
1)在按完IIS服务后,系统会默认给出FTP站点,我们可以删掉默认的自己从新建立。右击FTP站点,新建FTP站点,进行站点的描述,可以是公司的名称
2)添加FTP站点的IP,可以和网站的IP设成一个,这样方便客户访问与下载,端口默认为21
3)这里选择是否隔离的意识是说可以通过建立不同的帐号,使不同的使用者看到不同的文件,这样就做到了隔离效果。我在这里演示隔离效果,要选择隔离用户。
4)FTP共享文件的路径
5)对客户访问的权限进行设置
6)FTP站点建立完成后需要到计算机管理中添加新用户。这里我建立的是Vfast
7)在FTP站点的目录下建立localuser目录
8)在localuser目录下建立不同用户的文件夹,注意这里的文件夹必须和用户的名字一致 。什么都不要问,这几个步骤是固定的,不这么做就出不来结果。
9)为了测试,在不同的文件夹里建立了不同的文件
10)测试:敲ftp://站点的IP 然后会出现下面信息
11)使用不同的身份会看到不同的文件
一、防止数据库被非法下载
应当说,有一点网络安全的管理员,都会把从网上下载的网站程序的默认数据库路径进行更改。当然也有一部分管理员非常粗心,拿到程序直接在自己的服务器上进行安装,甚至连说明文件都不进行删除,更不要说更改数据库路径了。这样黑客就可以通过直接从源码站点下载网站源程序,然后在本地测试找到默认的数据库,再通过下载数据库读取里面的用户信息和资料(一般是经过MD5加密的)找到管理入口进行登陆获得webshell。还有一种情况是由于程序出错暴出了网站数据库的路径,那么怎么防止这种情况的发生呢?我们可以添加mdb的扩展映射。如下图所示:
打开IIS添加一个MDB的映射,让mdb解析成其他下载不了的文件:“IIS属性”—“主目录”—“配置”—“映射”—“应用程序扩展”里面添加.mdb文件应用解析,至于用于解析它的文件大家可以自己进行选择,只要访问数据库文件出现无法访问就可以了。
这样做的好处是:1只是要是mdb后缀格式的数据库文件就肯定下载不了;2对服务器上所有的mdb文件都起作用,对于虚拟主机管理员很有用处。
二、防止上传
针对以上的配置如果使用的是MSSQL的数据库,只要存在注入点,依然可以通过使用注入工具进行数据库的猜解。倘若上传文件根本没有身份验证的话,我们可以直接上传一个asp的木马就得到了服务器的webshell。
对付上传,我们可以总结为:可以上传的目录不给执行权限,可以执行的目录不给上传权限。Web程序是通过IIS用户运行的,我们只要给IIS用户一个特定的上传目录有写入权限,然后又把这个目录的脚本执行权限去掉,就可以防止入侵者通过上传获得webshell了。配置方法:首先在IIS的web目录中,打开权限选项卡、只给IIS用户读取和列出目录权限,然后进入上传文件保存和存放数据库的目录,给IIS用户加上写入权限,最后在这两个目录的“属性”—“执行权限”选项把“纯脚本”改为“无”即可。见下图
最后提醒一点,在你设置以上权限的时候,一定要注意到设置好父目录的继承。避免所做的设置白费。
三、MSSQL注入
对于MSSQL数据库的防御,我们说,首先要从数据库连接帐户开始。数据库不要用SA帐户。使用SA帐户连接数据库对服务器来说就是一场灾难。一般来说可以使用DB_OWNER权限帐户连接数据库,如果可以正常运行,使用public用户最安全的。设置成dbo权限连接数据库之后,入侵者基本就只能通过猜解用户名和密码或者是差异备份来获得webshell了,对于前者,我们可以通过加密和修改管理后台的默认登陆地址来防御。对于差异备份,我们知道它的条件是有备份的权限,并且要知道web的目录。寻找web目录我们说通常是通过遍历目录进行寻找或者直接读取注册表来实现。无路这两个方法的哪一种,都用到了xp_regread和xp_dirtree两个扩展存储过程,我们只需要删除这两个扩展存储就可以了,当然也可以把对应的dll文件也一起删除。
但是如果是由于程序出错自己暴出了web目录,就没有办法了。所以我们还要让帐户的权限更低,无法完成备份操作。具体操作如下:在这个帐户的属性—数据库访问选项里只需要对选中对应的数据库并赋予其DBO权限,对于其他数据库不要操作。接着还要到该数据库—属性—权限把该用户的备份和备份日志的权限去掉,这样入侵者就不能通过差异备份获得webshell了。