繁体   English   中英

在程序文件中包含SQL用户(具有有限权限)的安全隐患

[英]Security Implications of Including SQL User (with limited permissions) Within the Program File

因此,我的C#Windows Forms应用程序包含两个部分。 Database Records Manager (DRM)Public Access Client (PAC)

我使用这两个客户端使用提供的连接字符串访问Microsoft 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_datareaderdb_datawriter角色。

程序连接到的数据库不包含任何敏感数据,除了主表中的用户详细信息。

您的数据库内容向任何人开放。 用户名和密码很容易发现,因此广为人知。 不仅您是应用程序用户,而且实际上任何人都可以并且将访问您的数据。 脚本小子会删除每个表中的所有行(您确实允许),因为它们可以这样做。 黑客将读取每个表,包括您的用户名和电子邮件地址,您的财务交易以及数据库中所有可用的内容。

此外,您会发现自己无法更改此泄露的用户凭据,因为它在应用程序中进行了硬编码,并且如果要更改它,则必须说服用户安装新版本。

如果我理解正确,则您的Public Access Client (PAC)是C#Windows Forms应用程序,用户可以在自己的计算机上使用它。 在这种情况下,您的数据库绝对是不安全的,因为连接字符串只是一个配置选项,并且不提供任何安全性。 攻击者可以对应用程序进行反编译,获取连接字符串,然后使用它来访问Microsoft Azure SQL数据库,以便攻击者可以提取或破坏您的所有数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM