如何在 iis 7.5 上禁用服务器端代码?

如何在 iis 7.5 上禁用服务器端代码?

我想建立一个不能执行任何服务器端代码(asp,asp.net等)的网站。

我尝试使用具有“无托管代码”作为 .NET Framework 版本的应用程序池,但经典的 asp 代码仍然执行。

我尝试删除所有 ISAPI 过滤器,但没有帮助。

删除“.asp”处理程序映射有效。我是否应该删除所有 *.[ext] 处理程序以进一步锁定它?

我仍然需要在一些网站上运行代码,但我希望能够根据需要在网站上提供原始的网络托管。

答案1

最安全的方法是将以下内容添加到您的 web.config 中

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <location path="" allowOverride="false">
        <system.webServer>
            <handlers accessPolicy="Read" />
        </system.webServer>
    </location>
</configuration>

它与 William Jens 所做的相同。但是它<location path="" allowOverride="false">添加了一项安全措施,以防止覆盖子目录中的 web.config 文件。

值得注意的是,您仍然需要阻止对根 web.config 文件的修改。例如,将其设为只读。

答案2

您可以选择在服务器中安装和使用 IIS 的哪些功能;如果删除所有应用程序开发功能,则 Web 服务器将不会处理任何服务器端代码。

http://technet.microsoft.com/en-us/library/cc753473.aspx

答案3

经过一些进一步的修补后,我想我已经明白了。

IIS 管理器 > [我的网站] > 处理程序映射 > 编辑功能权限 > 取消选中“脚本”

这会禁用大多数处理程序,从而阻止经典 asp 和 asp.net 文件运行,但仍然提供 html。

不确定这是否是正确的方法,但它似乎有效。

相关内容