本主题包含关于推荐的安全工具和做法的信息。使用这些资源和工具并不会使应用程序免受攻击,但能降低攻击得逞的可能性。
Visual C++ 安全功能
本节讨论内置于 Visual C++ 编译器和链接器中的安全功能。
- /GS(缓冲区安全检查)
-
此编译器选项(默认情况下处于打开状态)指示编译器将溢出检测代码插入到面临被利用的风险的函数中。当检测到溢出时,将中断执行。
- /SAFESEH(图像具有安全异常处理程序)
-
此链接器选项(默认情况下不启用)指示链接器要包含到输出映像(一个包含各个异常处理程序的地址的表)中。在运行时,操作系统使用此表来确保只执行合法的异常处理程序。这有助于防止执行由运行时黑客攻击引入的异常处理程序。
- /analyze(企业代码分析)
-
此编译器选项(默认情况下不启用)激活代码分析,此分析报告潜在的安全问题,例如缓冲区溢出、未初始化的内存、空指针取消引用和内存泄漏等。有关更多信息,请参见 C/C++ 代码分析概述。
增强了安全性的 CRT
对于 Visual C++ 2005,已增加了 C 运行时库 (CRT) 以包含带来安全风险的函数的安全版本。(例如,未经检查的 strcpy 字符串复制函数。)这些函数的早期、不安全的版本现已被否决,所以使用它们将导致编译时警告。强烈建议程序员使用这些 CRT 函数的安全版本,而不是取消这些编译警告。有关更多信息,请参见 Security Enhancements in the CRT。
经过检查的迭代器
托管代码的代码分析
托管代码的代码分析,又称 FxCop,是检查程序集与 Microsoft .NET Framework 设计准则的一致性的工具。FxCop 分析各个程序集内的代码和元数据以检查下列领域中的缺陷:
托管代码的代码分析包含在 Visual Studio Team System 中,也可从以下地址下载:http://www.gotdotnet.com/team/fxcop/。
Windows 应用程序验证工具
.NET Framework 安全功能
本节概述两个相关的 .NET Framework 安全功能。
- 代码访问安全性
-
描述 .NET Framework 安全系统以及它如何与应用程序代码接口。
- 配置安全策略
-
描述用于调整 .NET Framework 安全策略的指导和工具。
Windows 用户帐户
使用属于 Administrators 组的 Windows 用户帐户使开发人员和最终涉及到的客户暴露在安全风险下。有关更多信息,请参见 作为用户组的成员运行。
请参见