2016-06-13 3 views
0

MySQLとPHPでホームApacheサーバーを作成しました。主に私の実験のために公にアクセスしたいウェブサイトを作成しました。しかし、私はちょうどポート3306で実行されている私のMySQLサーバーは、通常私のPHPはusernameとパスワードなしでlocalhost上のデータベースに接続することに気づいた。他のリモートPHPスクリプトは私のデータベースに接続できず、格納されているすべてのデータを取り除くことはできませんか?私のウェブサイトは危険にさらされていませんか?データベースサーバーへのリモート接続を停止するにはどうすればよいですか?私は自分のサーバー上のアプリケーション(または私が承認しているもの)だけが自分のデータベースにアクセスすることを望んでいます。文言が悪い場合は私を許してください、私はGoogle上で有用な記事を見つけることができませんでした。外部アクセスからのデータベースの保護を防ぎます

+1

my.cnf:bind-address = 127.0.0.1を編集し、MySQLを再起動します。 localhostのみで使用できるようにします。 – Daan

+0

あなたのMySQLサーバがリッスンしているIPアドレスとファイアウォールの設定を確認するだけで、 "自分のサーバ(または私が承認したもの)のアプリケーションだけが自分のデータベースにアクセスしたい"と答える必要があります。パスワードを使用してユーザーを作成できます - それを使用してください! –

+0

iptablesはまた、データベースへの接続の可能性を止めるのに役立ちます – Gar

答えて

1

コメントに示唆されているように、bind-address = 127.0.0.1設定オプションを使用してローカルホスト接続のみをリッスンするようにMySQLサーバーを制限することができます。あなたがそれを制限することができる唯一のlocalhostに制限されていない場合

SHOW GRANTS FOR CURRENT_USER; 

あなたは次のクエリで助成金をチェックすることができる唯一のこの特定のユーザのために変更を加えたい場合は

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

一般的に、パスワードを追加することをお勧めします。これは、将来他の設定を変更したり、同じMySQLサーバーを使用して他のアプリを実行したりするためです。申し訳ありませんが、安全である方が良いです。

関連する問題