安全客户端应用程序 (ADO.NET)

更新:November 2007

应用程序通常由多个部件组成,所有这些部件均不能包含漏洞,否则可能导致数据丢失或以其他方式危害系统。在攻击者可访问数据或系统资源之前将其阻止,以此可创建安全的用户界面来防止出现许多问题。

验证用户输入

在构建访问数据的应用程序时,除非能够证明其不为恶意输入,否则您应该假定所有用户输入均为恶意输入。如果未能实现此目的,则可能会使您的应用程序易于受到攻击。.NET Framework 包含的类可帮助您约束输入控件的值的域,如限制可输入字符的数目。使用事件挂钩,您可以编写用于检查值的有效性的程序。可验证和强类型化用户输入数据,从而限制应用程序对脚本和 SQL 注入攻击的公开程度。

安全说明:

您还必须验证数据源和客户端应用程序中的用户输入。因为攻击者可能选择避开应用程序,而直接攻击数据源。

Windows 应用程序

过去,Windows 应用程序通常使用完全权限运行。通过使用代码启用安全性 (CAS),.NET Framework 可提供限制在 Windows 应用程序中执行代码的基础结构。但是,仅使用 CAS 是不足以保护应用程序的。

ASP.NET 和 XML Web Services

ASP.NET 应用程序通常需要限制对 Web 站点某些部分的访问,并提供其他数据保护机制和站点安全机制。这些链接可提供用于保护 ASP.NET 应用程序的有用信息。

XML Web services 能够提供可由 ASP.NET 应用程序、Windows 窗体应用程序或其他 Web 服务使用的数据。您需要管理 Web 服务自身的安全性以及客户端应用程序的安全性。

有关更多信息,请参见下列资源。

资源

说明

保证 ASP.NET 网站的安全

讨论如何保证 ASP.NET 应用程序的安全。

保证使用 ASP.NET 创建的 XML Web services 的安全

讨论如何实现 ASP.NET Web 服务的安全性。

脚本侵入概述

讨论如何抵御脚本攻击,该攻击会尝试将恶意字符插入网页。

ASP.NET Web 应用程序的基本安全做法

常规安全信息和指向更多讨论的链接,

远程处理

使用 .NET 远程处理,您可以轻松构建广泛分发的应用程序,无论应用程序组件全部位于一台计算机上还是分布于世界各地。您可以在同一台计算机上或可通过其网络访问的任何其他计算机上构建使用其他进程中对象的客户端应用程序。您还可以使用 .NET 远程处理与同一进程中的其他应用程序域进行通信。

资源

说明

远程应用程序的配置

讨论如何配置远程处理应用程序以避免出现常见问题。

远程处理的安全性

描述身份验证和加密以及与远程处理相关的其他安全主题。

安全性和远程处理注意事项

描述与受保护对象和应用程序域交叉相关的安全问题。

请参见

概念

数据访问策略建议

保证应用程序的安全

保护连接信息 (ADO.NET)

其他资源

保证 ADO.NET 应用程序的安全