2013-05-15 102 views
2

首先要說明的是,我們有一些網站都連接到中央數據庫。通常,我們不允許客戶端訪問他們網站的FTP,因此他們無法訪問任何帶有DB憑證的文件。 99.9%的時間沒問題。加密數據庫憑證

但是,我們有一個客戶堅持他們有完整的FTP訪問。他們想要添加廣告/跟蹤內容,並且我已經將他們自己的數據庫和鎖定的FTP設置在另一個目錄中,但這顯然不夠好。

現在我確定他們不打算竊取我們的mysql憑證並連接並清除我們的數據庫,但毫無疑問,您會同意其巨大的安全風險。只有

一)連接到數據庫,而他們看到的代碼

B)中的憑據從加入自己的代碼,並連接到中央數據庫阻止他們,他們的:

有什麼辦法自己

很確定沒有什麼是100%安全的,因爲給他們FTP訪問意味着他們可以盡我所能做同樣的事情,但想知道其他人是否有任何想法?

+0

是的,收取額外的費用,比如1000年或更多,讓他們炸掉自己的盒子 – Drew

+0

在談論加密之前,我建議你使用特定的用戶從你的腳本連接到你的數據庫。這個用戶應該擁有有限的權利(當然選擇,插入和更新也可能不會超過)。當你談論中央數據庫時,你的意思是有人可以訪問數據庫訪問其他用戶的數據嗎? –

+1

簡單的答案是您需要在他們有權訪問的代碼與您想要拒絕訪問的進程之間存在中介。然後,該中介可以執行任何您認爲合適的檢查,無論是驗證與其交互的代碼庫,還是僅限制可執行的操作。如果是後者,你只需創建一個API來完成所有數據庫活動;在簡單的應用程序中,我使用MySQL帳戶憑證和存儲過程在數據庫本身內創建了這樣一個API。 – eggyal

回答

0

在沒有編寫RESTful API(您指出不可行)的情況下「安全」地完成此操作的唯一方法是在您的MySQL中爲其創建一個特殊的用戶帳戶,該帳戶無法訪問不屬於它們的記錄。實際上,如果你做的是「正確的」,你應該爲所有的客戶做到這一點,儘管我明白這可能需要大量的維護。

關於加密,沒有辦法對客戶端的數據庫憑證進行加密,並且在沒有中間代碼的情況下將數據庫登錄解密。儘管客戶端擁有自己的MySQL帳戶進行訪問,但這並不重要。