只是列举了 C# 开发人员需要知道的一些常见问题,有兴趣的朋友可以看下。
使用 checked 关键字控制整型算术运算和转换的溢出检查上下文。
始终对参数使用最严格的数据类型。例如,在将一个值传入描述数据结构大小的方法时,应使用无符号整数而不是整数。
不要根据文件名作出决定。文件名可以用多种不同的方式表示,因而检测是否有特定文件时可能会跳过该文件。
千万不要将密码或其他敏感信息硬编码到应用程序中。
始终验证用于生成 SQL 查询的输入。
验证传入方法的所有输入。System.Text.RegularExpressions 命名空间中的正则表达式方法对于确认输入(如电子邮件地址)的格式是否正确很有用。
不要显示异常信息:它会给任何潜在的攻击者提供有价值的线索。
确保应用程序在最低的可能特权下运行时能够正常工作。少数应用程序要求用户作为管理员登录。
不要使用自己的加密算法,应使用 System.Security.Cryptography 类。
为程序集指定强名称。
不要在 XML 或其他配置文件中存储敏感信息。
仔细检查包装本机代码的托管代码。确保本机代码是安全的,尤其是在防止缓冲区溢出方面。
在使用从应用程序之外传入的委托时应保持谨慎。
对程序集运行 FxCop 以确保符合 Microsoft .NET Framework 设计准则。FxCop 还可以查找 200 多种代码缺陷并针对这些代码缺陷发出警告。