簡體   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