C++ 安全性最佳做法

本主题包含关于推荐的安全工具和做法的信息。使用这些资源和工具并不会使应用程序免受攻击,但能降低攻击得逞的可能性。

Visual C++ 安全功能

本节讨论内置于 Visual C++ 编译器和链接器中的安全功能。

/GS(缓冲区安全检查)

此编译器选项(默认情况下处于打开状态)指示编译器将溢出检测代码插入到面临被利用的风险的函数中。当检测到溢出时,将中断执行。

/SAFESEH(图像具有安全异常处理程序)

此链接器选项(默认情况下不启用)指示链接器要包含到输出映像(一个包含各个异常处理程序的地址的表)中。在运行时,操作系统使用此表来确保只执行合法的异常处理程序。这有助于防止执行由运行时黑客攻击引入的异常处理程序。

/analyze(企业代码分析)

此编译器选项(默认情况下不启用)激活代码分析,此分析报告潜在的安全问题,例如缓冲区溢出、未初始化的内存、空指针取消引用和内存泄漏等。有关更多信息,请参见 C/C++ 代码分析概述

增强了安全性的 CRT

对于 Visual C++ 2005,已增加了 C 运行时库 (CRT) 以包含带来安全风险的函数的安全版本。(例如,未经检查的 strcpy 字符串复制函数。)这些函数的早期、不安全的版本现已被否决,所以使用它们将导致编译时警告。强烈建议程序员使用这些 CRT 函数的安全版本,而不是取消这些编译警告。有关更多信息,请参见 Security Enhancements in the CRT

经过检查的迭代器

借助于经过检查的迭代器,标准 C++ 库容器类的用户可在尝试访问容器边界以外的元素时得到通知。有关更多信息,请参见 Checked Iterators

托管代码的代码分析

托管代码的代码分析,又称 FxCop,是检查程序集与 Microsoft .NET Framework 设计准则的一致性的工具。FxCop 分析各个程序集内的代码和元数据以检查下列领域中的缺陷:

  • 库设计

  • 本地化

  • 命名约定

  • 性能

  • 安全性

托管代码的代码分析包含在 Visual Studio Team System 中,也可从以下地址下载:http://www.gotdotnet.com/team/fxcop/

Windows 应用程序验证工具

作为应用程序兼容性工具包的一部分,应用程序验证工具 (AppVerifier) 是一种可帮助开发人员标识潜在的应用程序兼容性、稳定性和安全问题的工具。

AppVerifier 的工作方式是:在应用程序运行时,监控操作系统的应用程序的使用情况,包括文件系统、注册表、内存和 API。然后,此工具提供它发现的问题的源代码级修复的指导。

验证工具可使您:

  • 检测由常见编程错误导致的潜在应用程序兼容性错误。

  • 检查应用程序是否有与内存相关的问题。

  • 确定应用程序与 Designed for Windows XP 或 Certified for Windows Server™ 2003 徽标计划的各种要求的一致性。

  • 标识应用程序中潜在的安全问题。

Windows 应用程序验证工具可从 http://www.microsoft.com/windows/appcompatibility/appverifier.mspx 获得。

.NET Framework 安全功能

本节概述两个相关的 .NET Framework 安全功能。

代码访问安全性

描述 .NET Framework 安全系统以及它如何与应用程序代码接口。

配置安全策略

描述用于调整 .NET Framework 安全策略的指导和工具。

Windows 用户帐户

使用属于 Administrators 组的 Windows 用户帐户使开发人员和最终涉及到的客户暴露在安全风险下。有关更多信息,请参见 作为用户组的成员运行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值