Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.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# 在无人参与的桌面应用程序上保护SQL Server连接字符串_C#_Sql Server_Azure_Desktop Application - Fatal编程技术网

C# 在无人参与的桌面应用程序上保护SQL Server连接字符串

C# 在无人参与的桌面应用程序上保护SQL Server连接字符串,c#,sql-server,azure,desktop-application,C#,Sql Server,Azure,Desktop Application,我们在现场的Windows 7 Pro服务器上运行应用程序。它们可能无人看管,因此不安全。它们连接到Azure中的Sql server。我们正试图找到一种保护连接字符串的方法,该字符串目前为纯文本。我们可以加密字符串,但这只是将问题转移到保护密钥。这些不是Web应用程序。我们主要担心的不是机器被盗,而是登录信息会被泄露。我们可以使用像ConfuserEx这样的模糊技术,使查找未加密字符串变得非常困难,但是有没有最佳实践?我知道SAML、WSFED、OAUTH和OPENID是Azure AD用于验

我们在现场的Windows 7 Pro服务器上运行应用程序。它们可能无人看管,因此不安全。它们连接到Azure中的Sql server。我们正试图找到一种保护连接字符串的方法,该字符串目前为纯文本。我们可以加密字符串,但这只是将问题转移到保护密钥。这些不是Web应用程序。我们主要担心的不是机器被盗,而是登录信息会被泄露。我们可以使用像ConfuserEx这样的模糊技术,使查找未加密字符串变得非常困难,但是有没有最佳实践?我知道SAML、WSFED、OAUTH和OPENID是Azure AD用于验证应用程序请求的受支持协议,但我认为将其纳入非Web应用程序是一个很大的困难

我认为你可能试图保护错误的东西

考虑到这是一个应用程序,它可以很好地受到对手的持续攻击。你应该考虑你的连接字符串被破坏了,因为不管你在应用程序的某个地方放置了什么样的措施,都需要有一个连接到的纯文本字符串。下定决心的攻击者会发现这一点

你应该花时间保护你的数据库。您应该能够在传单上打印您的连接字符串,并将其粘贴到机器的一侧,并且仍然不必担心数据安全性

如果将每个连接都授予数据库根访问权限,则会出现问题。但是,如果您仔细定义了数据库角色,则它们只能访问应该访问的数据。然后,用户所能做的就是访问他们本来可以从应用程序访问的数据

确保您有审核日志,您可以查看并查找异常活动(这是Azure最近开始做的事情)。当攻击者测试其拥有的帐户的限制时,会出现大量拒绝访问的错误。学会发现它们

当然,如果有一个API接口,您可以在其中进行某种方式的身份验证和验证,那会更好,但我理解,有时我们必须使用现有的API接口

TL;博士
除了最简单的加密/模糊处理之外,不要费心去做任何事情。只要确保当有人收到你的连接字符串时,他们不会对它造成任何损坏。锁定你的数据库。审计。经常看看审计。

我认为你可能试图保护错误的东西

考虑到这是一个应用程序,它可以很好地受到对手的持续攻击。你应该考虑你的连接字符串被破坏了,因为不管你在应用程序的某个地方放置了什么样的措施,都需要有一个连接到的纯文本字符串。下定决心的攻击者会发现这一点

你应该花时间保护你的数据库。您应该能够在传单上打印您的连接字符串,并将其粘贴到机器的一侧,并且仍然不必担心数据安全性

如果将每个连接都授予数据库根访问权限,则会出现问题。但是,如果您仔细定义了数据库角色,则它们只能访问应该访问的数据。然后,用户所能做的就是访问他们本来可以从应用程序访问的数据

确保您有审核日志,您可以查看并查找异常活动(这是Azure最近开始做的事情)。当攻击者测试其拥有的帐户的限制时,会出现大量拒绝访问的错误。学会发现它们

当然,如果有一个API接口,您可以在其中进行某种方式的身份验证和验证,那会更好,但我理解,有时我们必须使用现有的API接口

TL;博士
除了最简单的加密/模糊处理之外,不要费心去做任何事情。只要确保当有人收到你的连接字符串时,他们不会对它造成任何损坏。锁定你的数据库。审计。经常查看审计。

我们正在远程处理API接口。但就目前而言,是的,我们只能利用现有资源。我提供了一些基本的加密。我们必须检查数据库用户角色。谢谢我们正在远程开发一个API接口。但就目前而言,是的,我们只能利用现有资源。我提供了一些基本的加密。我们必须检查数据库用户角色。谢谢