看過很多.net程式,不管怎么擾亂,怎么呼叫c語言寫的類別庫來加密,都可以通過反編譯軟體,直接呼叫程式的部分代碼來獲取資料庫連接代碼。大家有好的思路嗎?
uj5u.com熱心網友回復:
拋磚引玉1,. net程式入口判斷下引數數量,如果數量為0(直接啟動)則提示由啟動器啟動,退出。
2,啟動器由go語言撰寫(其它也可以,主要是對付反編譯),資料庫連接代碼和. net程式的md5值保存在啟動器里。
3,啟動器運行時檢查. net程式的md5值(判斷是否被更改),符合要求時再以引數方式啟動. net程式。
uj5u.com熱心網友回復:
考慮過用windows訊息傳遞,怕被hook,也考慮過用udp來傳遞,還是怕被抓包。目前沒聽說過通過引數啟動程式會被獲取的情況,請大家多多指教。uj5u.com熱心網友回復:
架構上來解決啊資料庫訪問權限放到服務端,服務端自己保存資料庫資訊.客戶端僅能通過介面訪問資料,資料庫資訊拿不到
uj5u.com熱心網友回復:
謝謝回復

寫成3層倒是能解決,但是自己寫的服務層肯定不如資料庫ado.net連接成熟穩定,我之前寫過類似的服務,結果在大資料的時候經常出現莫名其妙的錯誤,可能水平不夠吧。不知道大蝦有沒有好的建議?
uj5u.com熱心網友回復:
Socket通信,資料庫的1433、1521、3306這些埠干嘛使的,本質不仍舊是Socket通信嗎。自己寫個服務端程式扔服務器上用來接收客戶端發送的SQL指令,服務端通過ADO.Net查資料庫結果序列化后傳回客戶端,客戶端再反序列化就好了,客戶端與服務端之間加上登錄驗證,如果你這個軟體帶賬戶登錄的可以結合到一起,這樣客戶端就只需要存服務端的IP和埠就OK了,剩下就是處理好鏈接超時和多執行緒的問題。
當然搞成B/S系統,或者服務端使用諸如WebAPI、WCF、WebService什么的都是可以實作
uj5u.com熱心網友回復:
若干年前曾經搞過一個服務端用來下發加密后的資料庫連接字串,客戶端啟動后先連服務端取得連接字串,解密后直接連資料庫,這種方式簡單粗暴不過安全性比較差,而且通常情況下資料庫服務器有白名單只能通過指定服務器訪問,如果你的資料庫沒有這方面的限制也可以考慮一下,至少比直接把資料庫登錄賬戶存客戶端強點
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/256560.html
標籤:VB.NET
上一篇:C# 工行支付 問題
