2012-04-26 31 views
0

我剛剛開始構建一個相當簡單的Web應用程序,其中數據存儲在數據庫中,在國家的一部分中使用php和mysql,並在另一部分中檢索。數據將包含個人信息,在任何情況下都不能由第三方訪問。並且可能會有第三方積極嘗試訪問該信息的情況。讓我們假設它的證人的名字。這是一個在發展中國家以低預算完成的系統,沒有任何證人保護。在MySQL數據庫黑客安全地製作個人數據?

我想採取的措施之一是在將數據存入數據庫之前將數據匿名化,我假設這是最安全和最便宜的。除此之外,我可以採取哪些措施來減少黑客獲取這些人員數據的機會?

如果我在存儲數據前對數據使用了強烈的加密,那麼輸入它的人和檢索它的人都需要加密密鑰,對吧?這是一個問題,因爲許多人將輸入/檢索數據,從而造成漏洞。如果密鑰存儲在服務器上,例如在代碼中,它不會有太大的保護,對吧?或者代碼可以做成相當黑客安全的?

我讀的地方,有人建議:

Web服務器< ==>應用程序服務器(在DMZ)< ==>數據庫服務器(後面第二防火牆)與排除&應用程序防止SQL注入&相似防禦。 在這種情況下,沒有黑客可以靠近數據庫本身。

這是真的嗎?需要三臺物理服務器嗎?

+0

「這個問題不適合我們的問答格式,我們希望答案通常涉及事實,參考資料或具體的專業知識;這個問題可能會徵求意見,辯論,爭論,投票或擴大討論。」 – Jakub 2012-04-26 15:16:10

+2

不確定任何服務器是否真正「安全」。除非它被關閉並且住在一個未知的,500英尺深的洞底部,被混凝土包住。 – Blake 2012-04-26 15:16:23

+0

對不起 - 也有投票關閉 - 如何建立一個安全的網絡應用程序是一個巨大的問題。 – symcbean 2012-04-26 15:22:26

回答

2

作爲服務器管理員,您可以訪問數據庫嗎?如果是這樣,那麼根據定義,設置應該被認爲是不安全的。

絕對使用SSL等顯而易見的技術,當然,這樣做可以防止中間人攻擊。仔細編程您的應用程序以避免SQL注入和那些東西。

如果其中一個圖層(比如網絡服務器)被破解,那麼可以從該圖層向下面的圖層發出請求,等等。根據定義,分層模型是不安全的,它只需要一些額外的步驟。