networking服务器| IIS | configuration为不运行某些文件

我目前有一个运行Windows Server 2012的networking服务器,它运行IIS作为它的networking服务器并使用PHP

让我们假设一个用户能够上传一个特洛伊到我的服务器,通过一个易受攻击的托pipe站点或者其他一些漏洞攻击。

如果用户能够findfile upload到的站点目录,他可以导航到它,从而执行病毒。

最近我向同事介绍了这种可能性,他说服务器的configuration方式只允许执行php脚本。

如何configuration他/她的服务器只允许运行PHP脚本,或者至less不允许攻击者执行某些文件types。

问候

IIS管理器

有几种方法可以立即做到这一点,但我认为最常用的方法是使用请求过滤模块,它可以通过IISpipe理器进行访问。 上图中我用红色突出显示了它。 这使您可以阻止具有特定文件扩展名,HTTP动词,URL,HTTP标题或查询string的请求。 您可以将其设置为只允许服务器处理.php(也可能是.css,.html,.png,.jpg …其他常见静态文件types)的请求。

顺便说一句,我在蓝色突出显示的两个项目也可能在这种情况下有兴趣。 目录浏览(默认情况下是closures的)完全符合你的期望,它控制着如果请求中没有指定文件并且没有configuration默认文档,Web服务器是否将返回虚拟目录的目录列表。

处理程序映射控制哪些应用程序configuration为处理哪些文件types。 在这里你告诉IIS,当它看到.php文件的请求时,它需要运行php.exe来处理它。 您可能会删除所有不必要的处理程序映射(包括 ),以消除您的服务器使用不寻常的扩展名处理文件的可能性。