安全性 API 的最佳做法

为了帮助开发安全软件,建议在开发应用程序时使用以下最佳做法。 有关详细信息,请参阅安全开发人员中心

安全开发生命周期

安全开发生命周期 (SDL) 是一个流程,它使一系列以安全为中心的活动和可交付结果与软件开发的每个阶段保持一致。 这些活动和可交付结果包括:

  • 开发威胁模型
  • 使用代码扫描工具
  • 执行代码评审和安全测试

有关 SDL 的详细信息,请参阅 Microsoft 安全开发生命周期

威胁模型

执行威胁模型分析可帮助您发现代码中潜在的攻击点。 有关威胁模型分析的详细信息,请参阅 Howard、Michael 和 LeBlanc、David [2003]、编写安全代码、2d ed.、ISBN 0-7356-1722-8、Microsoft Press、Redmond、Washington。 (此资源或许不提供某些语言版本,或在某些国家或地区可能不可用。)

服务包和安全更新

生成和测试环应与目标用户群的服务包和安全更新水平保持一致。 我们建议您为构建和测试环境中的任何 Microsoft 平台或应用程序安装最新的服务包和安全更新,并鼓励您的用户对完成的应用程序环境执行同样的操作。 有关 Service Pack 和安全更新的详细信息,请参阅 Microsoft Windows 更新 Microsoft 安全性

授权

您应创建需要最低特权的应用程序。 使用尽可能少的权限可降低恶意代码损害计算机系统的风险。 有关以最低可能的权限级别运行代码的详细信息,请参阅使用特殊特权运行

更多信息

有关最佳实践的详细信息,请参阅以下主题。

主题 说明
使用特殊权限运行
讨论特权的安全影响。
避免缓冲区溢出
提供有关避免缓冲区溢出的信息。
控制流防护 (CFG)
讨论内存损坏漏洞。
创建 DACL
演示如何使用安全描述符定义语言 (SDDL) 创建自由访问控制列表 (DACL)。
处理密码
讨论使用密码的安全影响。
动态访问控制开人员可扩展性
新动态访问控制解决方案的一些开发人员扩展点的基本方向。