所以我的C#Windows窗体应用程序有两个部分。 Database Records Manager (DRM)
和Public Access Client (PAC)
。
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};
我使用两个客户端使用提供的连接字符串访问Microsoft Azure SQL数据库。
formname.cs
在程序代码中使用此连接字符串有什么安全隐患? (如在db_datareader
内)
用于访问该帐户的用户/登录信息具有db_datawriter
和background-image: url("containers/filled/Firkin-Keg-5-Gallons_filled.png");
个角色。
程序连接到主机的数据库没有敏感数据,除了主表中的用户详细信息。
答案 0 :(得分:2)
您的数据库内容对任何人都是开放的。用户名和密码很容易发现,然后他们将广为人知。不仅是您的应用用户,而且任何人可以并且将访问您的数据。脚本小子将删除每个表中的所有行(您确实授予权限),因为它们可以。黑客会读取每个表格,包括您的用户名和电子邮件地址,您的财务交易,实际上,数据库中可用的任何内容。
此外,您会发现自己无法更改此泄露的用户凭据,因为它在应用程序中是硬编码的,如果您想要更改它,您必须说服用户安装新版本。
答案 1 :(得分:0)
如果我理解正确,您的Public Access Client (PAC)
是一个C#Windows窗体应用程序,用户可以在自己的计算机上使用它。在这种情况下,您的数据库绝对不安全,因为连接字符串只是一个配置选项,它不提供任何安全性。攻击者可以反编译您的应用程序,获取连接字符串,然后使用它来访问Microsoft Azure SQL数据库,这样他就可以提取或破坏您的所有数据。