當你們知道在exe文件中的硬編碼編碼可以通過一些軟件(例如代碼反射器)很容易地看到,我想知道我該如何隱藏我的連接字符串有信息的SQL Server用戶名和密碼連接到Windows窗體應用程序中的數據庫,通過任何代碼反射器查看,以便其他任何人除我之外,未經我的許可,可能永遠無法使用我的應用程序。如何隱藏Windows窗體應用程序中的連接字符串
回答
正如所評論的那樣,您最好使用集成安全性,但是如果您使用混合模式身份驗證來定位SQL Server,則可以使用Data Protection API來加密app.config中的連接字符串。下面是關於這一主題的大文章:
保護應用程序的祕密,如數據庫連接字符串 和密碼,需要大量的相關 因素的慎重考慮,如敏感數據是,誰可以訪問它如何平衡安全性,性能和可維護性等等。本文解釋了數據保護的基本原理,並且比較了可用於保護 應用程序設置的各種技術。作者討論了要避免的問題,例如 在源代碼中隱藏密鑰以及使用本地安全機構。在 另外,他提出了一些有效的解決方案,如Data 保護API。
Safeguard Database Connection Strings and Other Sensitive Settings in Your Code
由你提供的第二個鏈接似乎是我可以接受的解決方案,但如果某些機構可以通過代碼執行程序將cs內的cs文件加密或解密,他可以不用c編碼嗎? – kashif 2012-07-14 22:14:21
如果您希望人們對您的exe和dll進行反向工程,那麼您應該對代碼進行混淆處理,並提出一系列策略以使其成爲一種挑戰:http://stackoverflow.com/a/2611489/495455 DPAPI具有[兩種模式](http://msdn.microsoft.com/en-us/library/ff649248.aspx),[機器和用戶存儲](http://www.devproconnections.com/article/security-development/dpapi吸留選項)。用機器密鑰加密的「祕密」可以通過任何可以訪問機器密鑰的進程來解密。用用戶密鑰加密的'祕密'可以由同一用戶啓動的任何進程解密。 – 2012-07-15 01:46:46
七月份我問你這個問題。現在我想知道關於同一個問題的一些事情。如果我使用UserKey加密一些數據,然後想在另一臺機器上解密它,我將如何在另一臺機器上創建具有相同配置文件的相同用戶 – kashif 2012-10-25 13:17:23
爲什麼您的連接字符串(或至少是用戶名和密碼位)甚至在您的應用程序中。
如果你不能使用集成,那麼你應該提供一個登錄對話框並且每次都輸入它。
,這將會更加unusefull我事情,如果它發生用戶將知道密碼 – 2012-07-12 21:38:25
如果你正在使用sql server查找應用程序角色並設置正確。您當前的安全模型存在缺陷在您的代碼中保留用戶名和密碼,有人可以對其進行破解。 – 2012-07-13 12:51:04
- 1. 何處隱藏Windows窗體中的連接字符串?
- 2. Windows窗體應用程序的連接字符串
- 3. 隱藏Windows窗體應用程序中的控制檯窗口
- 4. 從Windows窗體應用程序中保存新的連接字符串?
- 5. 字符串^到VC++ 2010中的LPCTSTR(Windows窗體應用程序)
- 6. 在Windows窗體應用程序中隱藏xml文件
- 7. 如何在Windows Phone應用程序中隱藏編碼UTF-8字符串?
- 8. 如何從Windows窗體應用程序中的MenuStrip隱藏特定菜單項
- 9. 如何連接控制檯應用程序和Windows窗體應用程序C#
- 10. 如何在C#.net中創建Windows窗體應用程序的連接字符串,與計算機無關?
- 11. 如何驗證TextBox值是C#Windows窗體應用程序中的字符串
- 12. 將連接字符串隱藏到app.config中的數據庫C#窗體
- 13. 如何在C#中爲窗體窗體應用程序添加連接字符串#
- 14. 實體框架連接字符串在Windows應用程序中不起作用
- 15. 如何隱藏我的C#連接字符串中的密碼?
- 16. Windows窗體應用程序 - MySQL - 無法從'字符串'轉換
- 17. 在c#窗口應用程序中隱藏用戶窗體
- 18. 連接字符串隱藏在某處?
- 19. C#Windows窗體 - 數據管道連接到窗體窗體應用程序
- 20. 自動登錄程序(隱藏窗體)vb.NET Windows窗體
- 21. 如何隱藏Windows窗體應用程序中的控件,而無需隱藏基本形式
- 22. 如何通過我的窗體窗體應用程序存儲字符串
- 23. Windows應用程序+主網頁配置+連接字符串
- 24. 如何將Azure SQL Server連接字符串添加到Windows窗體中的app.config?
- 25. 實體框架:隱藏連接字符串
- 26. 的SqlConnection如何隱藏連接字符串
- 27. 如何在Windows窗體應用程序中創建mailto鏈接
- 28. Windows窗體應用程序
- 29. 如何加密wpf應用程序的連接字符串
- 30. 在ASP.NET Web應用程序中隱藏查詢字符串
怎麼樣在一個dll – 2012-07-12 21:29:26
封裝你的CS就沒有。在連接字符串中使用Integrated Security = SSPI,以便使用安全的Windows身份驗證。這是你需要留給LAN管理員的東西,不要涉及到你的客戶的安全策略。 – 2012-07-13 13:11:00
@imrankhan你的意思是混淆嗎?甚至更好http://www.remotesoft.com/salamander/protector.html – 2012-07-14 01:45:19