- 热门文章:
- · ASP.NET虚拟主机安全漏洞解决方案(3)
- · ASP.NET虚拟主机安全漏洞解决方案(4)
- · 利用ASP.NET 2.0创建自定义Web控件(1)
- · 利用ASP.NET 2.0创建自定义Web控件(2)
- · 利用ASP.NET 2.0创建自定义Web控件(3)
- · 利用ASP.NET 2.0创建自定义Web控件(4)
- · 利用ASP.NET 2.0创建自定义Web控件(5)
- · 在ASP.NET下实现数字和字符相混合的验证码
- · 生成图象验证码函数
- · 在ASP.NET 2.0中使用页面导航控件(1)
- · 在ASP.NET 2.0中使用页面导航控件(2)
- · DataGrid基于Access的快速分页法(1)
上一篇:ASP.NET虚拟主机安全漏洞解决方案(1) >>
ASP.NET虚拟主机安全漏洞解决方案(2)
可靠性和安全性。可靠性的提高是因为一个Web应用的故障不会影响到其他Web应用,也不会影响http.sys,每一个Web应用由W3SVC单独地监视其健康状况。安全性的提高是由于应用程序不再象IIS 5.0和IIS 4.0的进程内应用那样用System帐户运行,默认情况下,w3wp.exe的所有实例都在一个权限有限的“网络服务”帐户下运行,如图六所示,必要时,还可以将工作进程配置成用其他用户帐户运行。
对,这里,这里就是我们解决的核心。
我们把每一个网站都分配一个独立的应用程序池,并赋予不同的权限。不就能解决这个问题了吗?
具体如何做呢,下面我就针对建立一个网站来做一个示范:
首先,我们为网站创建两个用户(一个是app_test_user、密码为appuser,一个是iis_test_user、密码为iisuser)
1. 打开 计算机管理器
2. 单击控制台树中的用户→计算机管理→系统工具→本地用户和组→用户
3. 单击“操作”菜单上的“新用户”输入用户名为。app_test_user、密码为appuser
4. 在对话框中键入适当的信息。
5. 选中复选框:
用户不能更改密码
密码永不过期
6. 单击“创建”,然后单击“关闭”。
按照此方法在创建iis_test_user账户
然后分别把app_test_user添加到iis_wpg组,把iis_test_user添加到Guests组。删除其他组。
然后,建立相应的应用程序池。
依次打开Internet 信息服务→本地计算机→应用程序池→新建→应用程序池
新建一个名字为test的应用程序池
编辑test应用程序池的属性→标示→配置→用户名→浏览→把用户名改为我们刚才建立的app_test_user并输入相应的密码
其次建立相应的网站。
依次打开Internet 信息服务→本地计算机→网站→新建→test的网站,目录为d:\test →编辑test网站的属性→主目录→应用程序池→app_test_user →目录安全性→身份验证和访问控制→编辑,选择我们刚才建立的iis_test_user,并输入相应的密码iisuser→保存并退出。
最后设定服务器的安全。
C:只给administrators和system完全控制的权利,删除掉其他所有的权限,不替换子目录
C:\Documents and Settings继承父项,并替换子目录。
C:\Program Files继承父项,并替换子目录,并把C:\Program Files\Common Files\Microsoft Shared继承属性删除并复制现有属性,增加users的读取权限并替换子目录(这样做是为了能够让ASP,ASP.NET使用Access等数据库)。
C:\Windows删除继承,并复制现有属性,只给予administrators,system完全控制和users读取的权限并替换子目录。
其余所有的盘都只给于administrators和system用户的完全控制权限,删除其他所有用户并替换子目录。
D:\test(用户网站目录)继承现有属性并增加app_test_user和iis_test_user完全控制的权限并替换子目录。
以后每增加一个网站都以此类推。
但是,至此,system.io还是对c:\windows又读取权限的,(怀疑network servers用户属于users组,但是好多服务都要使用users组来执行的,所以不能把c:\windwos去掉users组的读取权限)但必须知道系统路径,有两种方案解决。
1、 再安装系统的时候使用无人值守安装,更换c:\windows默认安装路径,如更改为c:\testtest(要符合dos的命名规则,不能超过8个字符)。这个是必需的
2、 以下位置具有指派给 IIS_WPG 的权限:
%windir%\help\iishelp\common – 读取
%windir%\IIS Temporary Compressed Files – 列出、读取、写入
%windir%\system32\inetsrv\ASP Compiled Template – 读取
Inetpub\wwwroot(或内容目录)- 读取、执行
此外,IIS_WPG 还具有以下用户权限:
忽略遍历检查(SeChangeNotifyPrivilege)
作为批处理作业登录(SeBatchLogonRight)
从网络访问此计算机(SeNetworkLogonRight)
当然两种方法结合起来算是最安全的方案,一般使用第一种方案已经算是很安全的,毕竟是用一个webshell来猜测8位字符的目录还是需要花费时间的。使用防火墙很容易就能察觉出来,并加以控制。
第二种可能根据所安装软件不同还要相应增加目录的读取权限,详细情况要根据软件来确定。
如果主机用户比较多,这将是一个相当大的劳动量,推荐使用程序来解决问题,下面给出网上不常见的针对iis应用程序池操作的代码和针对iis虚拟目录的操作代码。
下一篇:ASP.NET虚拟主机安全漏洞解决方案(3) >>
相关文章:
- · DataGrid基于Access的快速分页法(2)
- · DataGrid基于Access的快速分页法(3)
- · DataGrid基于Access的快速分页法(4)
- · ASP.NET中对表单输入行有选择验证(1)
- · ASP.NET中对表单输入行有选择验证(2)
- · Javascript利用xmlhttp获得服务器时钟的方法
- · 用ASP编写的俄罗斯方块游戏
- · 复选框用法
- · 复选框用法
- · [漏洞]利用Activer server explorer可对文件进行读写访问
- · 给你的FSO对象加把锁
- · ASP有函数可以把某个网页通过STREAM下载吗?
- · 控制输出字符串的长度,可以区别中英文
- · 存储过程编写经验和优化措施
- · ASP.NET入门随想之工业流水线
- · ASP.NET入门随想之抽象的力量
- · ASP.NET入门随想之瘦子与胖子的故事
- · ASP.NET入门随想之开卷有益
- · ASP.NET中随机数生成及应用(2)
- · ASP.NET中随机数生成及应用(1)
- · ASP.NET中实现Flash与.NET的紧密集成(1)
- · ASP.NET中实现Flash与.NET的紧密集成(2)
- · 深度解析ASP.NET2.0中的Callback机制(1)
- · ASP.NET+AJAX解决网页打开等待问题(1)
- · ASP.NET+AJAX解决网页打开等待问题(2)
- · C#中为DataGrid添加下拉列表框
- · ASP.NET开发员工业绩评测中心(1)
- · ASP.NET开发员工业绩评测中心(2)
- · 在ASP应用程序中限制重复提交同一表单
- · 用VB将ASP代码封装成DLL
- · 如何在IIS上搭建WAP网站
- · asp程序错误详细说明例表
- · 短信发送程序
- · 用ASP实现电子贺卡
- · ASP.NET创建并使用Web组件(1)
- · asp.net生成缩略图
- · 动态增加的DropDownList如何保持状态
- · ASP.NET创建并使用Web组件(2)
