我正在開發一個.net Winforms應用程序,我需要保護連接到sql server 2008數據庫。我計劃創建一個web服務作爲中間層來處理認證並提供數據操作。還有更好的方法嗎? .net是否有組件或工具?最好的技術是什麼? 任何信息,將不勝感激,謝謝。.net winforms應用程序的安全連接
回答
定義 「安全」。顯然你希望限制對真正需要這些數據的用戶的數據訪問。但是,需要更多關於架構的信息;這是一個內部應用程序,只能在(安全)局域網,VPN或託管環境中使用嗎?或者,這是一個應用程序,用於不受控制的計算機上,它將通過Internet傳輸數據?您需要多少安全性取決於使用該軟件的用戶類型,數據的來源以及數據的敏感程度。
MSS內置安全性非常好。您可以將SQL用戶綁定到Windows域帳戶,您可以根據用戶或角色等以多種方式限制「安全性」(表格,視圖,SP等)。我會首先查看這些功能,並認真考慮利用優勢他們在你的安全計劃中。一個SQL用戶定義爲供特定軟件的任何用戶使用,該用戶有權執行軟件可能需要的任何操作,但這些SQL用戶很簡單,常見而且非常不安全。
如果這還不夠好,或者你想完全抽象你的數據層(例如,如果你需要軟件能夠指向從MSS到Oracle到MySql的任何數據庫類型),那麼它可能是使用服務代理實現存儲庫模型是一個好主意。和Brian一樣,我鼓勵你看看WCF。 WCF服務是高度可配置的,並且可以提供獨立的身份驗證和加密。一個精心設計的WCF服務確實非常安全。
在服務的後面,您可以實現一個Repository模式,該模式抽象瞭如何從數據存儲中檢索數據的詳細信息,並公開了一些簡單方法,該方法以即用形式返回包含所需數據的對象。現在,您的服務方法只會將1:1映射到Repository方法,可能會對DataContract可序列化的對象進行一些轉換,而不是服務兩端可用的更豐富的域模型。
Keith好點,你也可以使用其中的一些組合。例如,WCF可以將您的Windows憑據傳遞到數據庫,以檢查與Windows憑據綁定的帳戶。 –
的確如此,但這開始變得多餘。使用Windows集成的SQL用戶需要登錄的用戶位於同一Windows域;這反過來通常需要在局域網內部或者VPN上,這兩者都應該被很好地保護以防止未經授權的訪問。在安全環境中添加另一層身份驗證和加密會降低性能,但不會增加任何安全性(如果您位於局域網內,則可以繞過WCF服務與Windows用戶或您的Windows用戶進入數據庫黑客攻擊)。 – KeithS
確實如此,但是您可以將WCF服務託管在其他計算機上,使用白名單僅允許WCF計算機與數據庫通信,並且只允許WCF服務訪問數據庫,從而強制用戶使用WCF作爲通行證即使是最安全的環境/局域網也可以被分解;我們不知道他的安全要求是多麼偏執,或者是處理的數據類型。有時候,表現上的平衡值得到額外的0.01%的機會,有時候並非如此。 –
你看過使用WCF構建服務層嗎? WCF可以從實際的物理數據庫中引入一個全新的抽象和安全層。
WCF還允許您使用比傳統Web服務允許的更安全的綁定,並具有內置日誌功能。
而且,有時看看這本書,如果你想在.NET安全性真的很好看:
不,我之前沒有使用過WCF,謝謝我會嘗試使用它 – Lukas
- 1. C#Winforms應用程序安全連接到Access數據庫
- 2. 從winforms應用程序到Azure的安全連接字符串SQL
- 3. .net應用程序的PKI安全
- 4. 如何在WinForms應用程序中安全地存儲連接字符串?
- 5. .NET Web應用程序的應用程序安全審計?
- 6. 從winforms應用程序連接到MVC應用程序
- 7. 客戶端WinForms/WFP應用程序中的.NET Entity Framework:安全問題?
- 8. 安全地從Android應用程序連接到webservice
- 9. 連接到網站的ios應用程序的安全性
- 10. 覆蓋以前安裝的.NET winforms應用程序
- 11. 使用WebSecurity和.Net winForms應用程序
- 12. 應用程序和服務器之間的安全連接
- 13. 將.NET應用程序連接到MySQL
- 14. 從.Net應用程序連接到Db2
- 15. MySQL隨機關閉連接,在舊的WinForms應用程序中.Net 1.1和ODBC
- 16. Winforms .Net應用程序不會啓動
- 17. .NET WinForms應用程序和T-SQL
- 18. 如何安裝Crystal Reports for .NET 3.5 Winforms應用程序
- 19. 安全Codeignitor應用程序無法連接到MySQL DB?
- 20. 短信安全應用程序 - 數據庫連接
- 21. 安全與雲應用程序和PHP/LDAP連接
- 22. 安全的應用程序
- 23. 安裝.NET應用程序
- 24. Signalr樞紐連接管理WinForms應用程序
- 25. 爲更新的WinForms應用程序創建安裝程序
- 26. 安全遠程mySQL連接
- 27. 我的Winforms應用程序沒有連接到SQL Server 2000?
- 28. 如何連接WinForms應用程序上的EventHandler?
- 29. QB 2014升級後,WinForms應用程序無法連接
- 30. Web應用程序安全
當你說「安全」時,你想完成什麼?加密SQL連接? – vcsjones
那麼我想讓數據庫無法訪問到每個人,因爲如果我在app.config中存儲連接字符串,那麼你可以很容易地連接到數據庫。正如Brian和KeithS提到的那樣WPF似乎可以處理它 – Lukas