29

localhostのみをリッスンしている場合でも、MySQLのユーザー名とパスワードを知っている人なら誰でもアクセスできると聞きました。

私の情報が次のようになっていると仮定します。

USER: root
PASS: 123456
Host: LOCALHOST (only)

そこにいる(地元の)誰もがそれにアクセスできるのはどうしてですか?

4

4 に答える 4

52

リモートホストからユーザー名とパスワードへのアクセスを制限すると、誰かがデータベースに外部からアクセスできなくなります。

ローカルホストマシンから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
于 2012-11-03T11:18:56.160 に答える
5

これは私が偶然見つけた古い質問ですが、Darkeden で phpMyAdmin などを実行していれば、有効な MySQL 資格情報を使用して誰でもログインできます。

侵害された場合は、接続を制限するだけでなく、すべてのパスワードを変更します。

于 2015-01-10T03:30:33.470 に答える
4

ファイアウォールまたは MySQL 自体で MySQL への直接アクセスをブロックすることはできますが、ハッキングされる可能性が最も高い方法は、安全でない Web アプリケーションを介することです。そのような状況では、攻撃者はデータベース ログインを読み取って、サーバー。

したがって、アプリケーションを安全に保ちます。すべてを最新の状態に保ち、ファイルのアップロードを許可しないでください。複数のアカウントを持っている場合は suPHP を使用してください。

mysql アプリケーションを制限する場合は、次の手順に従います。

1. ポート 3306 をブロックすることもできます。サイトが同じサーバー上にある場合は、ホスト名として localhost を使用してデータベースにアクセスできます。

2. my.cnf ファイルの "[mysqld]" セクションに "bind-address = 127.0.0.1" を追加して、localhost のみへのアクセスを制限します。

ほとんどの人は、このタイプの制限を使用します。

于 2012-11-03T11:41:14.627 に答える