gpt4 book ai didi

c# - C# 服务的安全配置

转载 作者:太空宇宙 更新时间:2023-11-03 12:31:05 25 4
gpt4 key购买 nike

希望这是一个简单的问题,我只是找不到答案!

我想编写一个 C# 应用程序作为服务运行,该服务定期连接到 SQL Server 数据库以运行一些查询。 SQL Server 的连接详细信息必须存储在服务器可以获取它们的地方,但我不希望它们存储在纯文本文件中。我可以将它们存储在一个加密文件中,但是密码需要存储在服务可以访问的某个地方,这有点违背了这一点。

那么是否存在某种应用程序/服务级加密或安全存储 API,允许安全地存储配置/数据,而不需要我只将密码存储在某个文件中?

干杯!

最佳答案

加密 app.config 是完全可能的(更多细节参见 this blog)。但是,管理用户(或可以将调试器附加到您的程序的用户,或者如果密码未通过加密发送则可以在您的程序和服务器之间设置代理的用户)将能够看到解密的密码。

如果您担心这一点,您应该考虑不同的安全模型。例如,您可以使用 Trusted Subsystem Model ,其中用户根据可信的中间服务进行身份验证以连接到您的数据库。此服务可以设置为使用声明、角色或基于用户的身份验证来验证用户并确定他们是否应该有权访问数据库 - 并确保您永远不会分发存储在连接字符串中的密码。

或者,如果可能,您可以考虑在 SQL Server 中使用登录名和用户/组 - 这将允许您使用受信任的身份验证并且不需要在连接字符串中输入密码(尽管它仍然需要您分发连接字符串与您的应用程序一起使用,即使它已加密,对计算机具有管理访问权限的应用程序用户也可能会看到它已解密)。

请注意,这两种方法都会带来一些额外的开销 - 您必须在某种程度上维护角色/声明/用户,以确保只有您想要的用户能够连接(不像仅仅始终接受来自有权访问该应用程序的任何人的连接)。

关于c# - C# 服务的安全配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42724651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com