【Webアプリ製作入門⑤】 XAMPP のセキュリティ設定をしよう!

XAMPPのセキュリティ設定をする IT関連

XAMPPを使うということは、ローカル上にサーバを構築したも同然です。

ローカル環境でも、外部からアクセスされないように設定しておきましょう。

前提

セキュリティ設定をせずに、ControlPanelを終了する場合は、必ず「Stop」を押下してサービスを停止しましょう。

ソフトを「×」で落としていても、電源が入っていてLANにつながっていれば裏でサービスが起動したままになります。

つまり、電源が入っている限りWebサーバやDBサーバが起動しているということです。

気をつけましょう。

蛇足ですが……。


以下の外部サイトでは、XAMPPの「セキュリティページ」から設定を行っています。
XAMPPでセキュリティ設定を行う方法【初心者向け】

…が、バージョン5.6.11で廃止されましたので、コマンドベースで設定していきます。
XAMPPセキュリティの設定~データーベース(phpAdmin)編~

参考(FAQ)はこちらを参照ください。

XAMPP FAQs for Windows
Instructions on how to install XAMPP for Windows distributions.

WebサーバとDBサーバの起動を確認する

  • ​ControlPanelでStartを押下
  • PID(s)とPort(s)に番号が割り振られていることを確認
  • Adminを押下し、以下の2つによって、正常に動作していることを確認する
    • 「XAMPPへようこそ」というページが開かれること:Apache(Webサーバ)
    • phpMyAdminの管理画面が開くこと:MariaDB(DBサーバ)​

このままの状態では、セキュリティ設定をしていないので、外部から攻撃される可能性があります。

早速設定に移りましょう!

XAMPPのセキュリティ設定でやることは、2つ

無事起動できましたか?

それでは、早速設定を進めていきましょう!​

  • ➊MariaDBの管理者用IDのパスワード設定
  • ➋phpMyAdminの認証設定

➊MariaDBの管理者用IDのパスワード設定

  1. Shellを起動(XAMPPのControlPanel→Shellを押下)
  2. cd mysql\binを実行してカレントディレクトリを移動する
  3. mysql -u root(MySQLデータベースにrootという名前のユーザにログインします)を実行する
  4. MariaDBにrootユーザでログインした状態になる
  5. set password=password('password');を実行する。適当に自分の好きなパスワードを設定する。絶対忘れないようにすること!
  6. quitを実行して、DBとの接続を終了する
  7. ウィンドウ「×」でも閉じれるけど折角なのでexitを実行して閉じてみましょう。

➋phpMyAdminの認証設定


1. phpMyAdminでDBにアクセスしてみます。ControlPanelの「MySQL」→「Admin」を押下します。
2. 「設定が無効です」とか言われます。phpMyAdminは、設定ファイルを参照してログイン情報を読み込みます。修正が必要になりました。

現状、MariaDBのログイン情報は、
「root:password」となっています。

phpMyAdminはこのログイン情報を知らないから、無効になってるよというわけです。

3. STOPを押下して、サービスを停止します。
4. config.inc.php(phpMyAdminの設定ファイル)を書き換えて、ログインの認証方法を変更します。
※書き換えるときは、拡張子を変えるなどして、バックアップを取っておきましょう!
5. /phpMyAdmin/config.inc.phpを開きます。
6. /* Authentication type and info */のところに注目
7. userに記載されているrootを削除し、''にする。そしてconfigcookieに変更
8. サービスを起動しなおし、Adminを押下→ログインしてみる

できない場合は、ブラウザのキャッシュを削除してもう一度試してください。

【ステップアップ】一般ユーザを追加してみよう

一般的に、ルート(全ての権限を持つ最強ユーザ)は使用しません。

理由としては、なんでもできちゃうからです。

自分一人で管理する場合であっても、不手際が無いよう一般ユーザを作成し、そのアカウントで作業をするのが通例です。

以下の記事が参考になります。

ローカル開発環境のXAMPPでMySQL/MariaDBのユーザーを追加する | Free Style
ローカル開発環境でWeb開発を行う時にデータベースへのアクセスや操作ができるユーザーを追加したい場合があります。ここではローカル開発環境のXAMPPでデータベースを扱う時にユーザーを追加する方法をご紹介します。WindowsのXAMPPで説明していきますがmacOSのMAMPやXAMPPでもそんなに変わりありません。

ユーザの確認

コマンドプロンプトの場合
1. コマンドプロンプトを起動
2. cd .xamp\mysql\bin
3. mysql -u root -pを実行
4. パスワードを入力

SELECT user, host FROM mysql.user;を実行します。

パスワードも確認する場合は、SELECT user, host, password FROM mysql.user;を実行します。

暗号化されているので、見ることはできません。

一般ユーザの追加

MariaDBでのユーザの追加はCREATE文を使用します。

権限も同時に付与する場合はGRANT文を使用します。

実際にGRANT文を実行した場合の例を以下に記します。

一般ユーザでログインを確認

作成した一般ユーザにログインしてみます。

exit;を実行し、rootからログアウトします。

  1. mysql -u yamada -pを実行
  2. 設定したパスワードを入力し、Enterを押下

ログインできたら成功です!

お疲れ様でした。

ここでは書きませんが、ぜひ phpMyAdmin からもログインできるかどうか確認してみてくださいね。

【補足】CREATEとGRANTの違いについて

  • GRANT
    • 権限も同時に付与
    • 全ての権限を持たせている場合は、権限を後から絞っていく
  • CREATE
    • ユーザのみ作成される
    • 何も権限を持たない状態なので、権限を後から付け加えていく

まとめ

初め、以下のような状態になっていました。

  • MariaDBに誰でもアクセスできるようになってた
  • phpMyAdminにも誰でもアクセスできてた

今回の設定で、以下のような状態に変更しました。

  • MariaDBにパスワードを設定して、入力がないとアクセスできないようになった
  • phpMyAdminにログインする際、認証するようになった
  • rootではなく一般ユーザからログインするようになった

現場では、ユーザを追加して使うことが一般的です。

覚えておくと役立ちますよ!👍

次におすすめ

次は、ターミナル上でDBを操作してみます!

【Webアプリ製作入門⑥】DBを操作してみよう!
シェルからデータベースをコマンド実行して操作してみましょう!
タイトルとURLをコピーしました