2014-01-12 54 views
0

我正在使用帶有許可證密鑰和唯一機器ID(MAC代碼,CPU代碼和其他組合)的MySQL數據庫將我的軟件實施許可系統。我一直在尋找一種安全的方式來檢查用戶在C#應用程序中輸入到文本框中的許可證密鑰的有效性。我目前的方法是連接到一個簡單的PHP文件,如http://example.com/checklicense.php?=LICENSEKEYGOESHERE,並返回「VALID」(+機器ID)或「INVALID」字符串。然後,我將訪問此文件,並使用WebClientWebRequest從C#應用程序獲取返回字符串。安全軟件許可證檢查/驗證

顯然,使用這種當前的方法是不安全的,因爲您可以將URL重定向到本地主機並僞造結果。我想我真正的問題是,使用這種方法,我怎樣才能使它更安全?有沒有辦法讓我的C#應用​​程序通過簽名來識別它連接到真正的PHP文件?

回答

2

您的許可證服務器必須向軟件提供重要信息,而不是簡單的「有效/無效」標誌,如果您想確保它不應該很容易被僞造。另外,服務器的答案應該以一種不可預測的方式隨時間變化,否則它幾乎比以前的標誌解決方案要好。

請注意,另一方面,如果服務器出現故障,您必須讓客戶意識到他們的軟件將停止工作。我敢打賭,如果你沒有告訴他們,你會得到一些憤怒的電話和訴訟威脅,並且在你的晚上中斷事件...準備保證你的許可證服務器24小時全天候正常運行。

+0

+1在夜間休息 –