C#编程的安全性

安全性(C# 编程指南)

Visual Studio 2005
 

 

安全是每个 C# 应用程序的一个非常重要的方面,在每个开发阶段都必须考虑:而不仅仅是在完成设计和实现后才需要考虑。

本列表并未列出所有潜在的安全问题。它强调 C# 开发人员需要知道的一些常见问题。

  • 使用 checked 关键字控制整型算术运算和转换的溢出检查上下文。

  • 始终对参数使用最严格的数据类型。例如,在将一个值传入描述数据结构大小的方法时,应使用无符号整数而不是整数。

  • 不要根据文件名作出决定。文件名可以用多种不同的方式表示,因而检测是否有特定文件时可能会跳过该文件。

  • 千万不要将密码或其他敏感信息硬编码到应用程序中。

  • 始终验证用于生成 SQL 查询的输入。

  • 验证传入方法的所有输入。System.Text.RegularExpressions 命名空间中的正则表达式方法对于确认输入(如电子邮件地址)的格式是否正确很有用。

  • 不要显示异常信息:它会给任何潜在的攻击者提供有价值的线索。

  • 确保应用程序在最低的可能特权下运行时能够正常工作。少数应用程序要求用户作为管理员登录。

  • 不要使用自己的加密算法,应使用 System.Security.Cryptography 类。

  • 为程序集指定强名称。

  • 不要在 XML 或其他配置文件中存储敏感信息。

  • 仔细检查包装本机代码的托管代码。确保本机代码是安全的,尤其是在防止缓冲区溢出方面。

  • 在使用从应用程序之外传入的委托时应保持谨慎。

  • 对程序集运行 FxCop 以确保符合 Microsoft .NET Framework 设计准则。FxCop 还可以查找 200 多种代码缺陷并针对这些代码缺陷发出警告。

posted @ 2017-07-10 10:56  slarkleoric  阅读(1256)  评论(0编辑  收藏  举报