asp和asp.net虚拟主机的安全配置

为了研究下asp和asp.net虚拟主机更好的安全配置,决定对自己的机子下手。
  下面对win2003+SP2+IIS6配置成功,系统安装在c盘下,所有盘的文件系统都为ntfs,如果是fat32就没什么意思了。

第一步,系统盘的权限。
1)C盘中除了administrators,system外其他的组或者用户全部删除。

2)C盘下的所有文件和文件夹(包括windows)把除了administrators,system外其他的组或者用户全部删除【以前看的一些文章说需要把user组加载windows上,其实并不需要】。

3)C:\Program Files\Common Files\System下的所有dll文件加上user组的读取和运行权限。(对asp的,server.createobject时需要,如adodb.connection什么的之类的dll在此文件夹下放着。),如果想偷懒,可以直接加载system目录上。

4)c:\windows下的所有文件和文件夹把除了administrators,system外其他的组或者用户全部删除。
【可以安全设置的高级选项中的“允许父项的继承权限传播到该对象和所有子对象,包括哪些在此明确定义的项目”和“用在此显示的可以应用到子对象的项目替代所有子对象的权限项目”复选框】


在下面就是重点了。是asp和asp.net程序运行时要用到的权限。

asp.net程序
1)增加iis工作进程组IIS_WPG对c:\windows\assembly的读取和运行权限(由于assembly是特殊目录,不能直接使用右键然后属性来添加,需要使用cacls命令来添加),要不访问asp.net程序会出现“服务器应用程序不可用”的错误。运行命令“cacls c:\windows\assembly /T /G IIS_WPG:R administrators:F SYSTEM:F”【命令就是给iis_wpg组的读权限,administrators和system的完全控制权限并且更改当前目录及其所有子目录中指定文件的ACL。】,加上权限后需要重新启动对应的应用程序池或者从任务管理器中结束对应的w3wp.exe进程使用权限生效,要不刷新网页还是出现如上错误。
2)C:\WINDOWS\Microsoft.NET\Framework目录,加上IIS_WPG的读取和运行权限。此时只剩下了IIS_WPG,administrators和system。C:\WINDOWS\Microsoft.NET\Framework目录下的你对应的framework版本文件夹加上user的读取和运行权限,其他的文件夹如URTInstallPath_GAC可以不加。又到重点了,asp.net编译生成的文件在C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files下,所以需要给user组对Temporary ASP.NET Files的写权限。如果你用到了其他版本的framework(如1.1的),注意对应的Temporary ASP.NET Files也要有user组的写权限。
3)IIS_WPG需要有对C:\WINDOWS\WinSxS目录的读取和运行权限。要不访问时应用池程序会自动停止。事件查看器中出现“启动应用池失败"的错误。
附:如果Temporary ASP.NET Files下出现编译文件有多个文件的提示错误【大概是这个意思吧,公司服务器没安装中文帮助文档,显示的英文信息。。】,可以先停止iisadmin,删除Temporary ASP.NET Files 文件夹下的asp.net编译生成的所有文件和文件夹,然后启动iis让asp.net重新编译即可。【要注意停止iis,要不删除了Temporary ASP.NET Files下的文件和文件夹,提示文件被占用】。

asp程序
1)如果你使用的数据库是mssql什么的非access数据库,可以忽略此步骤。如果你使用的是access数据库那就要注意,需要给C:\WINDOWS\temp加上user组的写权限。要不连接access数据库时会出现“Microsoft JET Database Engine 错误 '80004005' 未指定的错误 ”次错误。
2)给C:\WINDOWS\system32加上user组的读取和运行权限,这是fso要用到的,如scrrun.dll。【当然如果你有时间,可以找到对应的dll文件加上user组的读取和运行权限,个人是直接加system32上了。】

asp程序和asp.net共同需要的
1)IIS_WPG组需要对C:\WINDOWS\IIS Temporary Compressed Files有读权限。这个好像是iis压缩网页需要的。如果没有IIS_WPG组的读权限,在“时间查看器”的系统那栏目那里会出现一条“指定的用来缓存压缩的内容 C:\WINDOWS\IIS Temporary Compressed Files 的目录无效。将禁用静态压缩。”警告信息。
2)user组需要拥有对c:\windows\Registration文件夹的读取和运行权限,要不当使用了session对象时会提示“http1.1无法建立新的会话”的错误。需要重新启动iis或者对应的应用程序池才能消除此错误。

到此已经完成系统盘的安全配置了。

第二步,其他盘(包括放asp,asp.net程序的盘)
盘和盘下面的所有文件和文件夹全部设置为只有administators组有完全控制权限,其他的组和用户全部删除。

第三步,IIS和用户部分(建立测试应用程序池,测试站点和系统用户)
1)运行compmgmt.msc打开计算机管理,找到本地用户和组,点击用户,然后新建用户。(为了简便我就把密码和用户名都设置一样了)
useriis:用来运行iis的,隶属于IIS_WPG组。
userweb:用来访问web站点的,隶属于GUESTS组,权限最低。
2)打开iis,新建应用程序池。然后右键刚才建的应用池,选择属性。在“标志”页,选择“配置”,而不是“预定义账户”【预定义是使用默认的network service用户来运行IIS】。然后输入用户名useriis或者浏览找到useriis,并且输入密码。
3)_建立一个测试站点,站点指向“e:\iisdebug”。右键此站点选择属性,目录安全性,编辑。勾选“启用匿名访问”,然后输入刚才建立的userweb用户名和密码。
4)选择iis的“web 服务扩展”,允许"Active Server Pages"和"ASP.NET v2.0.50727",iis6默认是禁止asp的,后面安装framework2.0也不会自动允许。

到此完成第三步。

第四步,放置asp,asp.net程序的文件夹的权限(我的放到e:\iisdebug,下面均直接称为iisdebug)
给iisdebug加上刚才建立的两个用户名useriis和userweb,权限为读写和运行。
在iisdebug下建立两个文件,test.asp和test.aspx和t.mdb(access数据库文件)用来测试刚才的配置是否成功。
test.asp文件可以把useriis用户删除,但是test.aspx文件不能删除,需要useriis和userweb。【意思就是asp程序只需要加上访问网站的用户名即可,asp.net程序需要访问网站的用户和运行iis的用户】。t.mdb需要加上userweb的写权限,如果你需要向access数据库写数据或者更新里面的数据时。还有一点注意的是如果有上传文件到某个文件夹时,此文件夹需要有useriis和userweb的写入权限。


到此基本上已经完成配置了,下面是test.asp和test.aspx的代码。
test.asp

+展开-VBScript
sub testObj(key)
on error resume next
err=0
set o=server.createobject(key)
if err<>0 then
   response.write "创建“"&key&"”<font color='red'>失败</font><br/>"
else
   response.write "创建“"&key&"”<font color='green'>成功</font><br/>"
   set o=nothing
end if
on error goto 0
end sub

set cn=server.createobject("adodb.connection")
response.write cn.state&"<br/>"
cn.open "provider=microsoft.jet.oledb.4.0;data source="&server.mappath("t.mdb")
response.write cn.state&"<br/>"
cn.close
set cn=nothing

'测试木马常用的组件,最后再给出如何防止asp木马的配置。
call testobj("scripting.filesystemobject")
call testobj("adodb.stream")
call testobj("wscript.network")
call testobj("wscript.shell")
call testobj("shell.application")
response.write now


test.aspx

+展开-HTML
<%@ Page Language="C#" debug="true"%>
<%
Response.Write(System.IO.File.Exists(Server.MapPath("jtb.rar"))+"<BR/>");
System.IO.File.Delete(Server.MapPath("t.htm"));
Response.Write(DateTime.Now);
%>

转载于:https://www.cnblogs.com/Randy0528/archive/2010/07/23/1783875.html

IIS6.0最全的缺失文件大全 自己装机器在网上找了好久,得半小时多了 为了给大家省时间,把我用到的一块打包发了上来 没有好好整理,但在里边都能找到 大家使用时,把所有的文件都解压出来就可以了 立即下载

相关推荐

windows2003 iis6 html压缩

看了些文章在本机上坐了下成功啦,可到服务器上做失败,查了下事件日志提示“指定的用来缓存压缩的内容 E:/htmlzip 的目录无效。将禁用静态压缩。” 加上  iuser写权限不管用最后在microsoft 网站上查了下得加IIS_WPG 写权限,就ok啦 开启步骤 打开iis打开“服务”标签页勾上静态页压缩,并设置临时目录 设置服务扩展,点增加 “GZIP”

ttt2的专栏 1386

无法为应用程序池创建磁盘缓存子目录(Window2008 R2 IIS7.5)解决办法

错误: 针对应用程序池的模板永久性缓存初始化失败,这是由以下错误导致的: 无法为应用程序池创建磁盘缓存子目录。数据可能包含其他错误代码。 解决办法如下: 网上搜索的答案全都是修改3个目录的权限,给IIS_WPG组,但在Win2008下面压根就找不到这3个目录,更没有IIS_WPG这个用户组,因此此方法仅限2003操作系统使用,后经各种探索最终解决,但这样设置的安全性并未经过考验,欢迎知

jiangshanmnaa的博客 2866

最好的ASP.NET虚拟主机安全配置

好多站长 都不知道aspasp.net 权限是不一样的,配置服务器别顾此失彼! 准备工作:需要在服务器上安装好Windows Server 2003及IIS服务(IIS服务中必须选定支持ASP.Net组件)。服务器所有分区都为NTFS格式。 开始设定工作:(演示服务器操作系统安装在C盘,Web目录放在D盘) ①在系统及IIS安装好后,C盘,D盘及系统默认帐号如下所示: C盘根目录

收集盒 Book box 1014

STM32F103C8T6串口通信避坑指南:从CH340驱动到Keil逻辑分析仪的全流程调试

本文详细介绍了STM32F103C8T6串口通信的全流程调试方法,从CH340驱动安装到Keil逻辑分析仪的使用,涵盖了硬件连接、软件配置调试技巧。通过实战案例避坑指南,帮助开发者快速解决串口通信中的常见问题,提升开发效率。

weixin_33671935的博客 322

ASP.NET+Win2003虚拟主机安全设置

  我们举例详细说明在运行ASP.NET的windows 2003虚拟主机上,对于多个ASP.NET站点的安全配置;   在这里,我们的站点目录放在D盘的www文件夹,假设现在有一个名叫fesend的虚拟主机用户,我们在www文件夹下建立 fesend 的文件夹来存放此用户的站点数据   其中要用到以下组及帐号:   IIS_WPG 组(也称为 IIS 工作进程组,IIS Worker P...

weixin_30824277的博客 136

ASP.NET虚拟主机配置方案

ASP.NET虚拟主机配置方案 系统盘C:当然是最重要的。 一:c盘给AdministratorSystem权限,完全控制 二:c\Documents and Settings,c:\Inetpub给AdministratorSystem权限,完全控制,不继承父 三:c:\Program Files 给Administrator...

weixin_30701521的博客 148

IIS WEB 站点文件夹权限配置

首先在D:根目录新建一个wwwroot文件夹,用来做为WEB服务器站点的根目录,里面存放不同网站的文件夹。例如新建第一个网站存放文件的目录WebSite1,为了杜绝跨站攻击等各种相关安全问题,实现各个虚拟主机目录有独立权限的访问机制,我们要给每个目录分配一个匿名访问的用户帐号。 依次右击桌面我的电脑----->管理------>本地用户与组,然后新建一个用户IISUSER_01,选中用户不能更改密码密码永不过期,去掉其余两项复选。(当然,如果您的WEBSER...

zp19860529的博客 2456

ASP.NET虚拟主机安全漏洞解决方案

说明:本文中所需环境为2003Server+iis6.0+ms sql2000  曾经很早就在网上看到一篇关于<asp.net虚拟主机的重大隐患>的文章,当时并不在意,做过asp虚拟主机的朋友可能都知道,即对每一个用户都设置一个独立的服务器用户单个目录的操作权限,能够基本上解决asp的fso问题。  在网上无意中发现了一个叫做webadmin的asp.net-webshell,对自己的服务器进行

依依喔喔的专栏 1054

Windows Server 2003 下 ASP.NET 虚拟主机的配置过程

基于 Windows Server 2003 下的 IIS 6.0 来搭建 ASP.NET 网站虚拟主机服务环境,需要进行这么几步: Windows Server 2003 操作系统的安装、安全设置及性能优化; 相关软件的安装配置; IIS 6.0 服务环境的设置,包括 HTTP 服务 FTP 服务; 虚拟主机用户帐户的建立...

weixin_34266504的博客 178

ASP.NET虚拟主机的重大安全隐患

一、ASP.NET虚拟主机存在的重大隐患  我曾经在WWW.BRINKSTER.COM申请了一个免费的ASP.NET空间,上传了两个程序,其中一个查看目录文件的程序证明我的判断:ASP共享空间服务器存在的一个安全问题,在 ASP+ 共享空间服务器中依然存在并且变得更加难以防范!通过这个程序我可以浏览所有用户的ASP+程序,可以查看服务器的系统日志……,当然,如果我想删除什么的话也不会有什么问题。

jxufewbt的专栏 819

ASP.NET虚拟主机安全漏洞解决方案 【 这篇文章不错 】

说明:本文中所需环境为2003Server+iis6.0+ms sql2000  曾经很早就在网上看到一篇关于<asp.net虚拟主机的重大隐患>的文章,当时并不在意,做过asp虚拟主机的朋友可能都知道,即对每一个用户都设置一个独立的服务器用户单个目录的操作权限,能够基本上解决asp的fso问题。  在网上无意中发现了一个叫做webadmin的asp.net-webshell,对自己的服务器进行

清风一吹(清风博客) 1094

asp.net 中在虚拟主机上部署membership

由于asp.net membership默认使用dbo用户访问数据库,所以在将memebership部署到虚拟主机上通常会出项数据库无法访问,因为默认的情况下微软的底层访问数据库的时候在表名前面加了数据库用户名,应该说能够操作权限的肯定是管理员,这里用DBO的所有者不是没有道理,谁让一些服务器卖数据库就允许自己用户创建的呢?,造成memebership无法正常使用,下面就如何解决这一问题分享一些个

gavinsky_haha2的专栏 345

虚拟主机asp.net运行权限不足问题及解决

有些时候我们写的asp.net应用程序是运行在虚拟主机上。有一些虚拟主机可能是由于安全的考虑,对asp.net做了权限设置,会导致我们的应用程序无法正常运行。问题现象:     由于某种原因,asp.net不能加载某些dll文件,出现如下错误提示:Server Error in / Application.------------------------------------------

johncools的博客 1484

ASP.NET虚拟主机安全隐患

本文作者:未知文章出处:未知文章性质:原创阅读次数:1发布日期:2004-08-24 转载自:www.HackBase.com 说明:本文中所有程序均在Windows 2000 Server中文版 + SP2上编译运行无误 开发环境:.Net 框架1.0 Version 1.0.3705   一、ASP.NET虚拟主机存在的重大隐患   我曾经在WWW.BRINKSTER.COM申请了一个免费的A

2163

如何在虚拟主机上部署ASPNET MVC2网站

本来网络上有很多类似的帖子,但是在我部署成功的过程中,依然摸索了很长时间,所以想写个文章来把我部署的过程记录分享一下,以便以后节省时间。 1、确定虚拟主机支持的NET版本,一般情况下,虚拟主机如果支持2.0,会同时支持3.5,而NET4.0的版本是需要特殊说明支持的。 2、我的虚拟主机不支持4.0,但是他可恶得给了我一个“更改Net版本”的菜单,于是我改成了4.0,之后就陷入了万劫不复的...

岁月无情 2572

虚拟主机上用asp.net轻松实现urlrewrite

在网上看到,很多朋友在asp.net中做urlrewrite,用的是HttpHandle+Server.Transfer的方法。其实这种方法是错误的。第一,HttpHandle是实现不了urlrewrite的;第二Server.Transfer是标准的重定向,根本不是urlrewrite。    其实,实现urlrewrite不用自己HttpHandle,也不用自己实现HttpModule,用

毅蓝小站 511

asp.net虚拟主机的路径泄露问题

       学习asp.net的时候发现,asp.net会把站点的asp.net的代码作临时编译(我是这样理解的,可能这样的说法不是很对)放在WINDOWS/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files (如果使用的是2.0的frameworks,那么就是WINDOWS/Microsoft.NET/Framework/v2.0

liswa 电脑备忘录 1606
上一篇: .net创建excel文件关键代码及部分说明
下一篇: [转]基于LUCENE实现自己的推荐引擎
avm8523362
博客等级 码龄11年 2粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值