IIS加载我的Isapi DLL后,该DLL中的代码是作为系统权限运行还是作为存放这个dll的目录所允许的用户权限运行?我还是举个例子说明我的问题吧。
比如:我写了一个Isapi扩展DLL名为MyDll.dll放到服务器上的c:\www\User1目录下(该目录只允许User1用户完全访问,其他用户一律不允许访问。User1用户也不是Administrators组的成员)c:\www\User1目录即为iis里面设置的主目录。当用户访问http://MyWebSite/MyDll.dll 时MyDll.dll被iis进程加载从而MyDll.dll中的代码将会被执行。我的问题是:MyDll.dll中的代码可以调用权限管理的api更改其他目录的权限吗?MyDll.dll中的代码可以读写不允许User1用户访问的文件吗?MyDll.dll是作为系统权限运行的还是作为User1用户权限运行?请熟悉winnt安全权限管理的编程高人赐教,谢谢先!!!
比如:我写了一个Isapi扩展DLL名为MyDll.dll放到服务器上的c:\www\User1目录下(该目录只允许User1用户完全访问,其他用户一律不允许访问。User1用户也不是Administrators组的成员)c:\www\User1目录即为iis里面设置的主目录。当用户访问http://MyWebSite/MyDll.dll 时MyDll.dll被iis进程加载从而MyDll.dll中的代码将会被执行。我的问题是:MyDll.dll中的代码可以调用权限管理的api更改其他目录的权限吗?MyDll.dll中的代码可以读写不允许User1用户访问的文件吗?MyDll.dll是作为系统权限运行的还是作为User1用户权限运行?请熟悉winnt安全权限管理的编程高人赐教,谢谢先!!!
解决方案 »
- 基于MSComm串口通讯 接收数据的问题
- idispatch error #3079
- 如何用POST发送数据
- 如何按Enter键响应已经聚焦的按钮
- C/S编程中,如果想保存多个客户端的Socket并通信 ,应该用什么方法保存多个Socket呢?
- 如何区分模拟键盘消息和真正的键盘消息?
- 使用VC6的DLL向导生成的支持Automation的DLL为何没有DllUnregisterServer接口
- 一个编译时出现的错误
- windows7系统下的GDI+(SetResolution)不起作用
- GetClipBox和SelectClipRgn的区别?
- 怎么在视图中加对话框??
- DATETIMEPICKER控件在显示一位的小时数时为什么不同
Reference:
HOW TO: Configure NTFS File Permissions for Security of ASP.NET Applications
http://support.microsoft.com/kb/815153
How to secure the IUSER_<Computer_name> account
http://support.microsoft.com/kb/323640
INFO: Security Ramifications for IIS Applications
http://support.microsoft.com/kb/q158229
INFO: Security Issues with Objects in ASP and ISAPI Extensions
http://support.microsoft.com/kb/q172925/
INFO: Difficulties Using Net APIs in ISAPI and ASP COM Objects
http://support.microsoft.com/kb/217144
How to impersonate a user from Active Server Pages
http://support.microsoft.com/kb/248187
How To Launching OLE Servers from ISAPI Extensions
http://support.microsoft.com/kb/156223
How To Access Network Files from IIS Applications
http://support.microsoft.com/?id=207671
HOW TO: Run Applications Not in the Context of the System Account in IIS
http://support.microsoft.com/kb/319067
INFO: WinInet Not Supported for Use in Services
http://support.microsoft.com/kb/238425
1 isapi扩展dll是作为iis的内置匿名帐户IUSR_computername运行的。
2 如果改dll内又创建其他进程该进程也是被赋予IUSR_computername用户权限。
3 对于ole server的exe可以经由该com注册表中的对应键添加run as项,设置该ole server exe作为其他用户运行。
4 可以调用RevertToSelf(api)将isapi扩展dll运行线程的权限由IUSR_computername转换为LocalSystem。转换以后isapi扩展dll再启动新的进程就是以LocalSystem用户运行。但以LocalSystem用户运行的进程不能访问任何网络资源。
请前辈们评估我的以上4条是否准确?不知道这些规则在今后的winnt版本中是否有变化?谢谢!