2012-07-01 64 views
0

我正在創建商店庫存管理PHP/SQL數據庫,該數據庫將在商店的本地服務器上使用。現在我陷入了一個問題。如果未經許可,我會如何防止某人將數據庫從客戶端PC複製到另一臺PC?我們如何開發一個只有開發人員才能安裝的數據庫?有些建議可能是:防止複製/複製PHP/SQL數據庫

  • 使用機器代碼等,爲e.g數據庫將工作的只有一臺PC,但仍然有一個人可以改變控制器代碼和illlegaly複製沒有開發商的許可。
  • 其他建議可能是使用登錄系統,但客戶可能會將副本給予他人並共享登錄信息。

所以我的問題是: 是否有一個很好的方法來防止非法複製的PHP/Sql數據庫?

換句話說: 有沒有辦法讓數據庫只在客戶端PC/PC上工作,這樣如果有人將它複製到其他PC上,它將不起作用?請幫忙!

+3

不是,沒有。 – Amber

+0

必須有某種方式才能使數據庫只在一臺計算機上工作或在一個網絡中工作。 –

+0

PHP和SQL對於幾乎所有編程問題都有解決方案,必須有某種方式,請幫助 –

回答

0

我高度讚賞答案,但因爲我在目前的答案中沒有找到合適的解決方案。經過一番研究並留意到答案後,我找到了一種方法來做到這一點。我們可以創建一個數據庫,它依賴於客戶端PC中的一些加密隱藏文件或機器代碼或密鑰等。我們必須開發一個腳本,以便在數據庫安裝時應用這些安全措施(隱藏文件或機器代碼或密鑰)。如果沒有適當的安全措施(隱藏文件或機器代碼或密鑰),數據庫應該無法正常工作。開發人員應該隨身攜帶安裝腳本,並在將數據庫安裝到客戶端PC時使用它。如果沒有該腳本,數據庫將不會被安裝,因此沒有開發人員的許可,任何人都無法安裝/複製數據庫。保持觀察的答案和​​評論,它看起來像這樣做的唯一簡單的方法。

+0

我覺得我最後一次指出,你所建議的將花費大量的時間和精力,如果你曾經有過很多麻煩恢復你的數據庫,將**非常難以維護,並且對於即使具有基本技能的黑客也能輕鬆繞過。如果你仍然想繼續前進,我顯然無法阻止你,但我無法強調,你所要做的是一個非常糟糕的主意。它最終會讓你在聲譽上花費更多,而不是增加安全性。如果你仍然必須繼續好運,那麼你將需要它。 –

+0

@King Skippus嗯,感謝您的建議......您是對的......我住在一個盜版軟件並轉售它們的習慣國家。我害怕我沒有任何選擇我只希望客戶端不會將我的軟件交給其他人...... –

+0

@King Skippus當我編寫微芯片的組裝軟件時。有一個硬件選項可以輕鬆鎖定軟件,以便任何人都無法檢索。如果PHP有這種安全性的某種方法,那將會很不錯。我認爲留給我的唯一方法是我在我的服務器上保留用戶名和ID。如果服務器數據庫跟蹤客戶端PC的機器地址,那麼只有我的客戶端計算機可以連接到服務器。而盜用的軟件不會工作,因爲小偷的PC機器地址將會不同 –

0

這個「最佳」的解決方案是

  1. 加密一切你的電腦上未輸入的任何地方(密碼)
  2. 鎖定您的PC下來,別人不能複製的關鍵。

如果有人獲得了數據,即使是加密的,他們也不會加密,如果他們想的話。所以阻止他們進入這是你最好的防守。

您也可以加密數據庫中的數據 - 但密鑰將保存在某處。如果他們能夠訪問您的PC,他們可以訪問解密密鑰。其他「編程」防禦措施(例如檢查計算機硬件/註冊表等)也可以進行編程。

所以這回退到加密您的電腦,希望加密密鑰不會被寫下來,並鎖定,以便有人無法獲取數據。

+0

感謝您的答覆。你不瞭解我的觀點。數據庫將安裝在客戶端PC上,而不是我自己的PC上。客戶端PC不在開發人員的控制之下。如果客戶非法向某人提供數據庫,如何防止他們使用它。 –

+0

請檢查我的編輯。我添加了一些線條來更好地解釋我的問題。你很高興回答,但實際上你沒有正確理解這個問題。請檢查添加的解釋到我的問題 –

+0

我有一個想法....如果我在數據庫安裝時在服務器上添加2,3隱藏文件,並將加密的時間戳/位置/其他信息存儲在數據庫中。數據庫的客戶端使用情況取決於那些隱藏的filew,即使有人在那裏複製這些文件,時間戳也不會匹配,數據庫也無法工作。這是適當的方法嗎? –

0

沒有辦法對數據庫進行特定於計算機的安裝。您可以做的最好的事情是將其存儲在加密的文件系統中,採取安全防範措施,例如強大的基於密鑰的身份驗證訪問服務器,關閉未使用的端口,確保軟件是最新的,加密所有客戶端與服務器之間的通信等,以及物理保護機器。 (這就是爲什麼,例如,谷歌的數據中心是如此受到訪問控制,在設施中具有高度的安全性,並且通常,它們甚至不會公佈其數據中心所在的位置。)

真的,當你想想看,這是一個好的的事情。畢竟,如果服務器崩潰會發生什麼?你真的想要那裏絕對沒有辦法將數據恢復到另一臺服務器?

安全性很重要,但它只能做很多事情。在某種程度上,您將不得不根據實際考慮妥協。

+0

感謝您的答案.. –

+0

我明白,有時我們必須妥協的安全性,但我有一個想法....如果我在服務器上添加2,3隱藏文件在數據庫安裝時,並將其存儲加密的時間戳/位置/數據庫中的其他信息。數據庫的客戶端使用情況取決於那些隱藏的filew,即使有人在那裏複製這些文件,時間戳也不會匹配,數據庫也無法工作。這是適當的方法嗎? –

+0

我的第一個傾向是認爲可能不是。如果有人複製您的數據庫,他們可以簡單地發出查詢以繞過發生的任何檢查。也許如果數據庫中的數據是用某種類型的簽名進行加密的,那麼它可能會更安全一些,但實際上,在這一點上,您可能只是在源代碼中硬編碼一個密鑰。我只是擔心,當有人試圖維護或恢復數據庫時,你跳過的箍環會在稍後發生。 –