Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Mongo数据库保护_C#_Database_Mongodb_Encryption - Fatal编程技术网

C# Mongo数据库保护

C# Mongo数据库保护,c#,database,mongodb,encryption,C#,Database,Mongodb,Encryption,因此,我创建了一个c#WPF应用程序,我想添加一种方法,让我能够控制谁有权访问它,以防它的exe被泄漏或发生其他情况。所以我创建了一个MongoDB数据库,并制作了一个名为Password的文档。单击窗口中的开始按钮后,它会检查您在数据库中输入的密码。它非常适合我使用 然而,当我了解到反编译器时,问题就出现了。据我所知,我的数据库连接到MongoDB的链接可以被准确地反编译。这将允许破解者以管理员权限访问我的数据库,并允许他们连接到数据库。对于我来说,什么是防止这种情况发生,并以不可能/极难反编

因此,我创建了一个c#WPF应用程序,我想添加一种方法,让我能够控制谁有权访问它,以防它的exe被泄漏或发生其他情况。所以我创建了一个MongoDB数据库,并制作了一个名为Password的文档。单击窗口中的开始按钮后,它会检查您在数据库中输入的密码。它非常适合我使用


然而,当我了解到反编译器时,问题就出现了。据我所知,我的数据库连接到MongoDB的链接可以被准确地反编译。这将允许破解者以管理员权限访问我的数据库,并允许他们连接到数据库。对于我来说,什么是防止这种情况发生,并以不可能/极难反编译的方式隐藏我的秘密的最佳方法?

配置和秘密(包括密码)应存储在应用程序代码之外。相反,从配置文件或登录屏幕读取机密。

windows中没有用户模式应用程序安全,任何东西都可能被破解和误用。最重要的一点是,.net使得任何愤怒的学童都可以轻而易举地反转你的代码,再说一遍,你做什么都无关紧要,因为它很可能被规避。如果您需要安全保护,您需要将您的敏感信息(数据库、服务等)置于防火墙后,并通过标准身份验证和授权技术授予访问权限。根据您的问题,您似乎已将密码(加密或甚至明文)存储在数据库中。永远不要这样做,存储散列值。大多数应用程序都有内置的安全性/身份验证功能——如果可能的话,可以使用这些功能。好的,但是我如何在仍然能够登录的情况下存储它的散列呢。我对这个很陌生,很抱歉。嗯,好吧,那么你建议用什么文件来存储我可以在exe文件中包含的秘密呢?我对这个很陌生。你可以使用任何数量的文件格式。例如
ini
xml
json
yaml
,等等。使用.NET中最简单的方法。