安全的影响(与有限的权限)在程序文件
问题描述:
所以,我的C#Windows窗体应用程序有两个部分。 Database Records Manager (DRM)
和Public Access Client (PAC)
。安全的影响(与有限的权限)在程序文件
我用两个客户端来访问微软的Azure SQL数据库,与所提供的连接字符串。
Server=tcp:{thedatabasename}.database.windows.net,{theport};Initial Catalog={adatabase};Persist Security Info={bool};User ID={username};Password={password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate={bool};Connection Timeout={int};
在程序代码中使用此连接字符串的安全含义是什么? (如在formname.cs
内)
用于访问帐户的用户/登录名具有db_datareader
和db_datawriter
角色。
,该程序连接到主机没有敏感的数据的数据库,也许比在主表中的用户的细节其他。
答
你的数据库内容是对任何人敞开的。用户名和密码是微不足道的发现,然后他们会广为人知。不仅你应用的用户,而且真的任何人都可以并将访问你的数据。脚本小子只会因为可以删除每个表中的所有行(您确实授予权限)。黑客将阅读每个表格,包括您的用户名称和电子邮件地址,您的金融交易,以及数据库中的任何可用内容。
而且你会发现自己无法改变这种泄露的用户凭据,因为它是在应用程序中硬编码的,你必须说服用户安装一个新的版本,如果你想改变它。
答
如果我理解正确的,你的Public Access Client (PAC)
是一个C#Windows窗体应用程序和用户可以使用它在自己的机器。在这种情况下,您的数据库绝对不安全,因为连接字符串只是一个配置选项,并没有提供任何安全性。攻击者可以反编译您的应用程序,获取连接字符串,然后使用它访问Microsoft Azure SQL数据库,以便他可以提取或破坏您的所有数据。