今天我讲更深入一些,谈谈网站安全性和稳定性。对于很多接触过Linux和Windows的朋友,对比Linux的apache来说,应该很清楚IIS是很不稳定了。什么死循环、堆栈溢出等问题一出现IIS就挂掉了,其他网站就受影响了。那我为什么还要讲IIS的安全性和稳定性呢?还是那句话,针对目前的市场来写文章做分享。
以下是使用IIS 部署网站的建议
1、将IIS目录&数据与系统磁盘分开放,如C盘放系统,D盘放数据,E盘只放网页文件。
2、网站目录只Administrators/SYSTEM/WEB用户/FTP用户权限,特殊目录除外。
3、启用父级路径
4、在IIS管理器中删除必须之外的任何没有用到的映射(保留asp、aspx等必要映射即可),如果不懂不要删除。
5、在IIS中将HTTP404等出错页面通过URL重定向到一个定制HTML文件
6、建议使用W3C扩充日志文件格式,每小时记录客户IP地址,用户名等所有记录分类,而且每天均要审查日志,可用日记工具阅读。(IIS日志不要存放在默认的C盘,建议更换一个非系统盘日志的路径,同时设置日志的访问权限,只允许管理员和system为Full Control)。
7、程序安全:
1) 涉及用户名与口令的程序最好封装在服务器端,尽量少的在ASP文件里出现,涉及到与数据库连接地用户名与口令应给予最小的权限;
2) 需要经过验证的ASP页面,可跟踪上一个页面的文件名,只有从上一页面转进来的会话才能读取这个页面。
3) 防止ASP主页.inc文件泄露问题;
4) 防止UE等编辑器生成conn.asp.bak文件泄露问题。
8、设置IIS的服务恢复,减少IIS出问题时,自动重启服务。
1)将IIS Admin Service的恢复 第一次失败 设置为 重新启动服务,第二次失败和后续失败 设置为 运行一个程序,重置失败计数为 1天以后,重新服务启动服务为0分钟,然后在运行程序中复制以下地址 C:/WINDOWS/system32/iisreset.exe 命令行参数 /start
2)将World Wide Web Publishing Services 第一次失败、第二次失败、后续失败 设置为 重新启动服务,重置失败计数为 1天以后,重新服务启动服务为0分钟
9、删除C:/WINDOWS/system32/inetsrv目录下的adsiis.dll的user权限,可以禁止遍历IIS。
10、Web站点权限设定(建议)
读 允许
写 不允许
脚本源访问 不允许
目录浏览 建议关闭
日志访问 建议关闭
索引资源 建议关闭
11、控制网站目录的权限,以下详细介绍。
一、新建Web访问用户
0、右击 我的电脑--计算机管理--本地用户和组/用户--右击 新建用户
1、如 用户名web001、密码:123abc!@# (如果是真实运行尽量使用32位 复杂密码,另外用记事本保存好)
2、将 用户不能更改密码 和 密码永不过期 打勾。
二、修改Web用户权限
1、右击 web001 属性--隶属于--将Users删除,添加IIS_WPG (www.111com.net)
三、新建 应用程序池并设置权限
1、打开 Internet 信息服务(IIS)管理器 右击 应用程序池 新建--应用程序池
2、填写新应用程序池的名称,如web001 或者默认AppPool #1(关于网站独立使用应用程序池会比较好,一出现问题其他网站不会受它影响,也建议不同类型的网站不要使用同一个应用程序池)
3、右击 AppPool #1 属性--标识--应用程序池标识/配置--填写刚才新建的WEB用户:web001和密码:123abc!@# 应用--再一次密码输入:123abc!@# --确定。(建议关于服务器相关的账号和密码用记事本保存好)
四、设置网站的应用程序池和目录安全性权限
1、右击 www.paipat.com网站的属性--主目录--应用程序池--选择刚才新建的AppPool #1
2、切换到 目录安全性--身份验证和访问控制/编辑--输入刚才新建的用户和密码,点击确定时再输入一次密码
3、进入网站目录,如D:/wwwroot/web001,右击web001属性--安全--添加web001用户--权限只留下读取和写入,点击 高级--选择Web001--编辑--添加 删除权限。