2016-06-13 156 views
0

我已經創建了一個帶有MySQL和PHP的家庭Apache服務器。我剛剛創建了一個我想要公開訪問的網站,主要是爲了我的實驗。但是我剛剛意識到我的MySQL服務器在端口3306上運行,通常我的PHP使用用戶名和密碼連接到本地主機上的數據庫。不能有任何其他遠程PHP腳本連接到我的數據庫並虹吸掉所有存儲的數據嗎?它不會把我的網站置於危險之中嗎?如何停止到我的數據庫服務器的遠程連接?我只想要我的服務器上的應用程序(或我贊同的)訪問我的數據庫。如果措辭不好,請原諒我,我在Google上找不到任何有用的文章。防止數據庫從外部訪問

+1

編輯my.cnf:bind-address = 127.0.0.1並重新啓動MySQL。使其僅適用於本地主機。 – Daan

+0

您應該檢查您的MySQL服務器正在偵聽的IP地址以及您的防火牆設置,但要回答「我只需要我的服務器上的應用程序(或我贊同的那些應用程序),以訪問我的數據庫」:這就是爲什麼您可以用密碼創建用戶 - 使用它! –

+0

iptables還應該幫助你阻止傳入連接到數據庫的任何可能性 – Gar

回答

1

您可以限制您的MySQL服務器僅偵聽與bind-address = 127.0.0.1配置選項的本地主機連接,如註釋中所示。

如果你想只爲這個特定的用戶,您可以用下面的查詢檢查補助的變化:

SHOW GRANTS FOR CURRENT_USER; 

如果不是僅限於localhost您也可以限制:

GRANT ALL PRIVILEGES ON *.* TO <username> @'localhost' IDENTIFIED BY '<password>'; 
GRANT ALL PRIVILEGES ON *.* TO <username> @'127.0.0.1' IDENTIFIED BY '<password>'; 

通常,我會建議添加一個密碼,因爲您可以在將來進行一些其他配置更改或使用相同的MySQL服務器運行其他應用程序。安全比對不起更好。