我继承了托管在Azure中的SQL server数据库的支持。
有5-10个WPF应用程序安装在各个用户的桌面上,这些应用程序可以访问这个数据库。
用户都有个人电脑。而不是由本组织集中管理),由于住宅宽带而具有动态IP。
应用程序通过ADO连接直接连接到数据库。
应用程序的所有实例都使用一个用户名和强密码(大约40个字符)。
未加密的凭据仅存储在密码安全中,而不存储在GitHub或其他任何地方。
连接字符串是强加密的,这就是存储在app.config中并在运行时在应用程序的工作内存中解码的内容。
数据库打开了TLS的安全性。在休息时加密)。PII数据存储在数据库中以及银行帐户详细信息(nb )中。财务细节存储在额外加密的列中)
数据库访问已被白名单上的所有IP地址授予:

从安全的角度来看这个设置是否可以接受?如果不是,那么需要修改什么或者可以做些什么来改进它?
这个问题类似于我发现的另外两个帖子,Is Azure SQL secure when using it for a desktop program?和How can I allow unknown users to access my SQL (Azure) DB?
我相信我的问题与这些问题有很大不同,因为那里的答案基本上可以分为两类。‘白名单所有的IP’和2)。“引入中间层”。
虽然我在构建WebAPI服务方面有经验,但我并不认为使用HTTPS前端数据库引入中间see服务层一定会使其更安全(如果我错了,请告诉我)。
理想情况下,为了简单起见,我希望保持当前的体系结构,但从安全的角度来确定设置是可以接受的。
发布于 2021-04-20 00:24:01
问题是您的Azure数据库有一个公共端点.database.windows.net。因此,通过允许任何IP访问数据库,您将删除防火墙规则安全层,并且您的数据库将暴露于恶意攻击。这不被认为是安全最佳实践。这就是为什么这个“中间层”解决方案总是被提出来解决动态IP的问题。
您可以在这里找到更多的信息和可能的解决方案(私有端点,VPN S2S):https://learn.microsoft.com/en-us/azure/azure-sql/database/security-best-practice#minimize-attack-surface
https://stackoverflow.com/questions/67164316
复制相似问题