最近、XAMPP スタックをデスクトップにインストールし、ラップトップ経由でローカル ネットワークに接続しました。驚いたことに、phpmyadmin にアクセスして、すべての mysql テーブルを削除および更新できました。本番環境で xampp を使用すべきではないことは理解していますが (使用していません)、これらのタイプの明らかなセキュリティ上の欠陥を管理する方法を学びたいと思っています。.htacces ( http://forum.directadmin.com/showthread.php?t=29089 )を介してディレクトリへのアクセスをブロックできることはわかっていますが、もう少し包括的なものが欲しいです。localhost 以外からの mysql クエリの実行をどのように制限しますか? .htaccess を使わない方法はありますか? これは root ユーザーの目的の一部だと思いました。
1 に答える
ドメインを持つ MySQL 定義のユーザー。user_privileges
データベースのテーブルを見るinformation_schema
と、それらすべてにドメインがあることがわかります。すべてのユーザーが厳密に localhost として定義されている場合、リモート アクセスはありません。
また、my.cnf を編集して、データベースへの tcp アクセスを無効にし、すべての接続を強制的にソケットにすることもできます。の下[mysqld]
に、行を含めますskip-networking
。ソケット接続を使用するようにすべてのアプリを構成する必要がありますが、とにかくソケットの方が好きです。
phpMyAdmin がデータベースと同じマシンにインストールされている場合、phpMyAdmin を使用している誰かからデータを保護することはできません。最も安全な方法は、そのアプリを削除することです。ただし、これは便利なツールであるため、実用的ではないことが多く、phpMyAdmin を構成して、ユーザーが自分自身を認証するように要求する必要があります。つまり、構成ファイルにパスワードを入れないでください。再認証までのセッションの長さなどを考慮する必要があります。
phpMyAdmin は、構成しようとするたびに千の太陽よりも熱い怒りで満たされますが、phpMyAdmin を介してデータベースに接続するたびにパスワードが必要になるように設定することは間違いなく可能です。phpMyAdmin の悪用者が、限られた権限 (たとえば、現在作業中のデータベースのみを変更できるなど) を持つユーザーとしてのみ接続するようにすることで、被害をさらに抑えることができます。