安全规划
Microsoft 有一个关于安全性与软件这一主题的歌诀Secure by design secure by default and secure by deployment(设计安全默认安全和部署安全)即在安全中设计期待系统在默认情况下是安全的以及创建可以在安全环境中成功部署的解决方案安全始终是重要的既然越来越多的软件要在公用的 Internet 上生存编写安全的软件就更加关键对于我们而言幸运的是NET 运行时和 Windows 操作系统提供广泛的安全选项和功能我们可以轻松地将其包含在我们的应用程序中无需过分注重标识和消除联机解决方案中安全漏洞的细节我们可以指出其中一些最常见的漏洞并指出我们的应用程序规划如何进行处理
注意有关可用选项的详细信息请参阅 Microsoft Security Developer Center
缓沖区溢出
这可能是已编译应用程序中最常见的安全漏洞由于我们将使用 NET 运行时而它是设计用来在内存中安全运行的因此不太可能发生缓沖区溢出此外我们使用 Microsoft Visual Basic? NET 对解决方案进行编码而 Microsoft Visual Basic? NET 不像 C 或 C++ 那样容易受到缓沖区溢出问题的影响但是即使我们打算用 C++ 创建组件我们还可以使用编译程序的特殊功能GS 转换来保护我们免受大多数缓沖区溢出的攻击
数据库攻击
另一种常见的安全漏洞可能会使恶意用户获得访问存储在数据库中的原始数据的权限为了防止黑客获得数据的控制权我们仅使用 SQL Server 存储过程而不使用内联查询这样可以大大减少试图在输入流中插入其他 SQL 命令的攻击我们还在程序中多个位置处使用输入验证以确保所有输入仅包含有效的字符
交叉站点脚本攻击
对 Web 应用程序进行的常见攻击还有一种它涉及到用户在输入流中添加客户方脚本这类攻击将执行附加的对话并诱骗用户将个人数据发送到黑客自己的 Web 站点要解决这个问题我们使用 ASPNET 的一个新功能过滤出这种恶意代码的所有输入防止将它置入系统中显示屏幕上还包含附加代码它将自动禁用任何脚本或显示可能会插入到数据存储中的标记
至此我们已获得了应用程序的逻辑模型和物理模型以及确保实现方案包含的安全功能清单拥有了这些以及目标声明和用户方案我们可以开始这次编码前探险的最后一部分了
[] [] []