winform数据的安全性?

时间:2009-12-08 22:10:37

标签: c# winforms security

保护winform数据的最佳方法是什么?换句话说,如何保护数据免受winforms c#projects的攻击?

  1. 有一个包含25-30个表格的winform项目。它将数据存储到访问数据库。
  2. 如果我开始为所有表格编写加密/解密逻辑,那么它将花费很多时间。
  3. 在存储数据库之前是否有可以自动加密/解密的.NET dll /技术?
  4. 对此有一些有效的快速方法吗?
  5. 谢谢, Karthick

2 个答案:

答案 0 :(得分:2)

正如评论所说,取决于你想要保护的东西。

如果您尝试保护访问权限,可以使用Identity和Principals来确定基于线程的身份验证,权限和角色。

如果您将敏感字符串存储在内存中,请使用SecureString而不是常规字符串。

如果您指的是阻止某人“破解”您的软件,请使用混淆软件来阻止任何攻击者。

首先,您必须定义您正在寻找的安全领域,然后只需要进行研究......或者在这里询问!

答案 1 :(得分:0)

因此,如果我理解正确,您希望在将数据放入数据库时​​对数据进行加密,并在再次将数据解密时进行解密?

首先,了解您保护数据的对象非常重要。该应用的其他用户?可能访问物理机的外部人员?

您还应该对您的代码进行结构化,以便对数据库的所有访问都通过单个数据层进行。也许是执行所有数据访问代码的单个类或一组类。这意味着,当您的所有表单都不需要在数据进出数据库时添加加密和解密。

在加密方面,您需要确定将用作加密数据的密钥。加密数据的最快且最简单的方法是使用DPAPIProtected Data类。

受保护的数据类允许您加密数据,以便它只能在加密的同一台机器上解密,并且可以给出一个aditional值,以便只有您的应用程序或其他知道额外值的东西可以解密它。

另一种选择可能是加密整个数据库,但我不确定Access对此有何支持。如果Access没有内置任何内容,则使用加密文件系统和File.Encrypt可能会有效。

这些可能适用于您的方案,也可能不适用,它实际上取决于您要阻止的人以及需要保护数据的时间。