localhostのみをリッスンしている場合でも、MySQLのユーザー名とパスワードを知っている人なら誰でもアクセスできると聞きました。
私の情報が次のようになっていると仮定します。
USER: root
PASS: 123456
Host: LOCALHOST (only)
そこにいる(地元の)誰もがそれにアクセスできるのはどうしてですか?
リモートホストからユーザー名とパスワードへのアクセスを制限すると、誰かがデータベースに外部からアクセスできなくなります。
ローカルホストマシンから3306(MySQLデフォルトポート)へのトラフィックのみを許可するようにファイアウォールを構成することもできます。
アップデート
LOCALHOSTを介してのみアクセスできるようにユーザーを設定するには、次のようにします。
GRANT ALL PRIVILEGES ON *.* TO db_user @'localhost' IDENTIFIED BY 'db_passwd';
GRANT ALL PRIVILEGES ON *.* TO db_user @'127.0.0.1' IDENTIFIED BY 'db_passwd';
また、MySQLサーバーをローカルアドレスにバインドします。[mysqld]
これを行うには、次のセクションを編集しますmy.cnf
。
[mysqld]
bind-address = 127.0.0.1
これは私が偶然見つけた古い質問ですが、Darkeden で phpMyAdmin などを実行していれば、有効な MySQL 資格情報を使用して誰でもログインできます。
侵害された場合は、接続を制限するだけでなく、すべてのパスワードを変更します。
ファイアウォールまたは MySQL 自体で MySQL への直接アクセスをブロックすることはできますが、ハッキングされる可能性が最も高い方法は、安全でない Web アプリケーションを介することです。そのような状況では、攻撃者はデータベース ログインを読み取って、サーバー。
したがって、アプリケーションを安全に保ちます。すべてを最新の状態に保ち、ファイルのアップロードを許可しないでください。複数のアカウントを持っている場合は suPHP を使用してください。
mysql アプリケーションを制限する場合は、次の手順に従います。
1. ポート 3306 をブロックすることもできます。サイトが同じサーバー上にある場合は、ホスト名として localhost を使用してデータベースにアクセスできます。
2. my.cnf ファイルの "[mysqld]" セクションに "bind-address = 127.0.0.1" を追加して、localhost のみへのアクセスを制限します。
ほとんどの人は、このタイプの制限を使用します。