まず、XAMPP が本番環境には適していないことはわかっています。しかし、私は Apache、MySQL の使用に関しては初心者であり、最も重要なことは PHP の初心者であるということです。私は Node.js/Java/Javascript のバックグラウンドを持っているので、すべてが私にとって非常に新しいのです。
XAMPP を使用して開発しているこの特定のテスト アプリでは、Windows も使用しています (これも私にとっては非常に珍しいことです。通常、サーバーの作成と管理には Ubuntu を使用します)。
私は、あらかじめ作成された PHP テンプレートを使用してこのアプリを作成したため、XAMPP のセキュリティ ページ手順を実行する前に、すべての「htdocs」ファイルを置き換えました。
環境を少し保護するために私が実行した手順について説明したいと思います。さらに提案があったり、何か見落としている点があれば教えていただければ幸いです。
- フォルダを完全に削除しました
webdav
。 - MySQLのルートパスワードを変更しました。
- Cookie Auth の PhpAdmin デフォルト パスワードを変更しました。
- 保護したいフォルダーにファイルを設定しました
.htaccess
。(Apache は初めてなので、これはちょっとわかりにくいです。最初は XAMPP フォルダー全体を保護したかったのですが、そうすると誰も認証情報でログインしなければ Web アプリにアクセスできなくなり、.htpsswd
これは望んでいたことではありませんでした。ダウンロード可能な機密ユーザー ファイルがあるフォルダーでのみこれを行いたかったので、それに.htaccess
応じてファイルを移動しました。ただし、最初に講じるべきセキュリティ対策は実際に XAMPP フォルダーのルートにファイルを設定することだと言っている人が多いので、これが本当に賢明なのかどうかはわかりません。.htaccess
私は 1 つ持っていますが、認証保護されていません。私の懸念は、Apache がどのフォルダーが「アクセス可能」かなどを決定する方法を理解していないことにあります。私は、明示的に作成してユーザーが使用できるルートを通じてのみアクセスできる Web サーバーを作成することに慣れています。PHP と Apache が連携してこれらの権限を定義する方法がよくわかりません。) - 私は FileZilla を使用していません (私の知る限り、実行していません)。
- 私は Mercury を使用していません (私の知る限り、実行していません)。
- 私は Tomcat を使用していません (私の知る限り、Tomcat を実行していません)。
さて、私にとってもっと心配な部分ですPhpAdmin
。最初は localhost 経由でアクセスできましたが、VirtualHost サーバーを自分のドメインと SSL に向けるように設定したらアクセスできなくなりました。これを「修正」する方法は、localhost に向けられたポート 80 で待機している別の VirtualHost を再作成することでした。PhpAdmin
ドメインと IP 経由でリモート アクセスしようとしましたが失敗しました。それでも、ネットワーク経由で何らかの脆弱性があるのではないかと心配です。これが私のVirtualHost
設定です。httpd-ssl.conf
<VirtualHost *:80>
ServerName localhost
DocumentRoot "C:/xampp/apache/logs/error.log"
</VirtualHost>
##
## SSL Virtual Host Context
##
<VirtualHost *:80>
ServerName http://example.com
DocumentRoot "C:/xampp/apache/logs/error.log"
Redirect / https://example.com/login
</VirtualHost>
<VirtualHost _default_:443>
# General setup for the virtual host
DocumentRoot "C:/xampp/htdocs"
ServerName example
ServerAdmin [email protected]
ErrorLog "C:/xampp/apache/logs/error.log"
TransferLog "C:/xampp/apache/logs/access.log"
私がやっていることについて少し理解している限りでは、MySQL デーモンはネットワーク経由でアクセス可能であっても、侵入者がパスワードを取得するには総当たり攻撃が必要になるでしょう。私の機密性の高いダウンロード可能なファイルは、.htaccess
認証情報によって保護されています。
私は思う私の PhpAdmin も保護されているようですが、これについてはよくわかりません。何かアドバイスがあればお願いします。