保护基于.NET Framework构建的应用程序

本文介绍保护基于 Microsoft .NET Framework 构建的应用程序的重要注意事项。

原始产品版本:.NET Framework
原始 KB 编号: 818014

摘要

本文是一系列文章之一,提供基于.NET Framework构建的应用程序的详细信息。

本系列文章包括以下文章:

逐个区域调整.NET Framework安全性

.NET Framework将信任级别分配给托管程序集。 这些分配部分基于运行程序集的区域。 标准区域包括“我的计算机”、“本地 Intranet”、“Internet”、“受信任的站点”和“不受信任的站点”。 可能需要增加或降低与其中一个区域关联的信任级别。 .NET Framework包括用于调整这些设置的工具。

调整.NET Framework程序集中的信任级别

.NET Framework包含许多方法,用于确定应授予程序集的信任级别。 但是,你可以对规则进行例外,使特定程序集能够接收比它通常基于公共语言运行时提供的证据接收更高的信任级别。 .NET Framework提供了专用于此目的的向导工具。

还原已自定义的策略级别

作为管理员,你可以完全控制授予在各种信任级别运行的程序集的访问权限。 如果自定义信任级别,则运行通常在标准信任级别下运行的应用程序时可能会遇到问题。 但是,你可以快速将策略级别还原到其默认设置。

评估授予程序集的权限

如果具有企业、计算机和用户安全配置策略以及可自定义的信任级别,则可能难以评估已授予托管程序集的权限。 .NET Framework配置工具包括评估这些权限的简单方法。

审核 的安全性。连接 NET 的应用程序

在升级、测试和故障排除期间,生产系统的配置可能会意外更改。 例如,管理员可以在确定错误是否与访问权限相关时向用户授予管理凭据。 如果管理员在完成故障排除过程后忘记撤销这些提升的凭据,则系统的完整性会受到损害。

由于此类操作可能会随着时间的推移而降低系统安全性,因此最好定期进行审核。 为此,请记录原始系统的关键方面,以创建基线度量值。 将这些设置与一段时间内的基线进行比较,以确定是否存在任何可能显著降低漏洞级别的问题。

配置 。连接到 NET 的应用程序和SQL Server,以使用备用端口号进行网络通信

许多自动化工具通过查询已知的端口号来识别可用的服务和漏洞。 这些工具包括合法的安全评估工具和恶意用户可能使用的工具。

减少接触此类工具的一种方法是更改应用程序使用的端口号。 可以将此方法应用于 。依赖于后端SQL Server数据库的 NET 连接应用程序。 如果正确配置了服务器和客户端,则此方法有效。

锁定 ASP.NET Web 应用程序或 Web 服务

可通过多种方式提高 ASP.NET Web 应用程序和 Web 服务的安全性。 例如,可以使用数据包筛选、防火墙、限制性文件权限、URL 扫描 Internet 服务器应用程序编程接口 (ISAPI) 筛选器,以及精心控制的SQL Server权限。 最好查看这些不同的方法,以便为 ASP.NET 应用程序提供深入的安全性。

配置 NTFS 文件权限以提高 ASP.NET 应用程序的安全性

新技术文件系统 (NTFS) 文件权限仍然是 Web 应用程序的重要安全层。 ASP.NET 应用程序包含的文件类型比以前的 Web 应用程序环境多得多。 匿名用户帐户必须有权访问的文件并不明显。

为基于.NET Framework构建的应用程序配置SQL Server安全性

默认情况下,SQL Server不向用户授予查询或更新数据库的能力。 此规则也适用于 ASP.NET 应用程序和 ASPNET 用户帐户。 若要使 ASP.NET 应用程序能够访问存储在SQL Server数据库中的数据,数据库管理员必须向 ASPNET 帐户授予权限。

有关如何配置SQL Server以允许来自 ASP.NET 应用程序的查询和更新的其他信息,请访问配置对数据库对象的权限

配置 URLScan 以增强对 ASP.NET Web 应用程序的保护

在 Internet Information Services 5.0 (IIS 5.0) 服务器上安装 URLScan 时,它配置为允许 ASP 3.0 应用程序运行。 但是,安装.NET Framework时,URLScan 配置不会更新为包括新的 ASP.NET 文件类型。 如果希望为 ASP.NET 应用程序添加 URLScan ISAPI 筛选器的安全性,请调整 URLScan 配置。

要求对 ASP.NET Web 应用程序进行身份验证

许多 ASP.NET 应用程序不允许匿名访问。 需要身份验证的 ASP.NET 应用程序可以使用以下三种方法之一:表单身份验证、.NET Passport 身份验证和Windows 身份验证。 每个身份验证方法都需要不同的配置技术。

限制特定用户获取对指定 Web 资源的访问权限

ASP.NET 包括 Forms 身份验证。 这是一种无需创建 Windows 帐户即可对用户进行身份验证的独特方法。 ASP.NET 还包括授予或拒绝这些用户对不同 Web 资源的访问权限的功能。

有关如何按用户控制对 Web 资源的访问的详细信息,请访问 如何限制特定用户获取对指定 Web 资源的访问权限

限制服务器允许的 Web 服务协议

默认情况下,ASP.NET 支持 Web 服务客户端向 Web 服务发出请求的三种方式:SOAP、HTTP GET 和 HTTP PUT。 但是,大多数应用程序只需要这三种方法中的一种。 最好通过禁用任何未使用的协议来减少攻击面。

不允许浏览器访问 。连接到 NET 的 Web 服务

ASP.NET Web 服务提供浏览器友好的界面,使开发人员能够更轻松地创建 Web 服务客户端。 此友好的界面允许任何可访问 Web 服务的人查看可用方法和任何必需参数的完整详细信息。 此访问对于仅包含公开可用方法的公共 Web 服务很有用。 但是,这可能会降低专用 Web 服务的安全性。

有关如何按用户控制对 Web 资源的访问的其他信息,请访问 如何限制特定用户获取对指定 Web 资源的访问权限

使用 ASP.NET 保护文件类型

ASP.NET 应用程序的结构会导致许多专用文件与最终用户请求的文件一起存储。 ASP.NET 通过截获对文件的请求并返回错误来保护这些文件。 可以使用配置设置将此类型的保护扩展到任何文件类型。 如果应用程序包含应保持私有的异常文件类型,则可以使用 ASP.NET 文件保护来保护这些文件。

References

有关如何保护基于.NET Framework构建的应用程序的详细信息,请访问 Windows 10 部署中的新增功能