博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
应用程序池配置隔离
阅读量:7047 次
发布时间:2019-06-28

本文共 1185 字,大约阅读时间需要 3 分钟。

就应用程序池的安全性而言,我们必须保证 w3wp.exe 工作进程可以读取 IIS 配置数据,因为这是 w3wp.exe 工作进程正常工作的基础。w3wp.exe 工作进程必须能够读取其所服务的网站的 IIS 设置。这意味着 w3wp.exe 工作进程必须对 applicationHost.config 文件中配置的大多数内容具有 Read 访问权限。问题是:如果每个应用程序池都可以读取整个配置文件,那么,配置文件中的所有信息就都暴露给每一个应用程序池了。因此,我们必须确保:就 applicationHost.config 文件中的整体内容而言,不允许每一个应用程序池都具有对这些整体内容的 Read 权限或 Write 权限。否则,某些用户就可以获取对敏感信息的访问权限。

为了解决这个问题,IIS 开发团队提出了一种方法,允许 w3wp.exe 工作进程读取与其有关的所有设置,但是同时又不需要访问其他应用程序的信息,也不能访问敏感的全局设置数据,这样就能够在不同的应用程序工具之间做到完全的配置隔离。
当应用程序池第一次启动时,Windows Process Activation Service(WAS)仅获得与该应用程序池有关的信息,并且在 C:\inetpub\temp\appPools\ 目录下创建了一个临时文件夹,为这个应用程序池设置 ACL,然后将信息保存在这个临时文件夹中。下图显示了这个保存了 WCF.Inventory.config 文件的文件夹。
应用程序池配置隔离
应用程序池配置隔离

.config 文件中的数据大多数与 applicationHost.config 文件中的数据相同,但是没有保存任何其他应用程序池中的 Web 网站信息。我们没有必要在 .config 文件中保存其他应用程序池中的 Web 网站信息,因为w3wp.exe 工作进程是由 WAS 管理的,而且 w3wp.exe 工作进程也不需要使用自身的信息。

如果与该文件有关的数据发生了变更,那么这个临时文件也会随之更新,否则,这个文件就一直保存在上述目录中,直到 IIS 停止运行。如果我们删除这个文件,那么 IIS 将无法正常执行该应用程序池的功能,所有与该应用程序池有关的操作都会发生失效,并且仅当 IIS 重启后,在重新生成这个被删除的文件之后,这个问题才能得到解决。如果我们仅仅是回收这个应用程序池,那么这个被删除的文件不会被重新生成,因此无法解决这个问题。所以,除非错误定位时必须使用这些文件,并且确实能够理解这些文件的功能和各种方式,否则最好不要对这些文件进行操作。
在 IIS 7.0 中创建临时文件的整个过程都是全新开发的,从而确保了一个应用程序池中的恶意代码无法从应用程序池中读取敏感配置数据。

转载于:https://blog.51cto.com/2612012/2406069

你可能感兴趣的文章
ASP.NET2.0中用ICallbackEventHandler实现客户端与服务器端异步交互
查看>>
关于JFace中的TableViewer和TreeViewer中的
查看>>
Hadoop MapReduce概念学习系列之十分钟看透MapReduce(十一)
查看>>
[C#]C#补习——类型和操作符—PART2
查看>>
链表常见的问题【转】
查看>>
Outlook HTML渲染引擎
查看>>
进程的切换和系统的一般执行过程【转】
查看>>
C语言:创建动态单向链表,创建完成后,输出每一个节点的数据信息。
查看>>
MVC3 上传文件
查看>>
在windows下使用eclipes连接linux下的Hadoop集群
查看>>
URAL 1141. RSA Attack RSA加密演算法
查看>>
[LeetCode] Count Complete Tree Nodes 求完全二叉树的节点个数
查看>>
深入Java集合学习系列:LinkedHashMap的实现原理
查看>>
JSpider(5):EventSinks,Rules&Resources
查看>>
Linux之sed
查看>>
第 40 章 Asymptote: The Vector Graphics Language
查看>>
一点小疑问
查看>>
开发可复用的从Domino中导出数据到Excel的类
查看>>
JAVA设计模式之【单例模式】
查看>>
Android防止进程被第三方软件杀死
查看>>