phpMyAdminのセキュリティについて


**IP制限は必要ですか？**  
・rootログイン不可へ設定したので、通常のログイン画面と強度は同じになると思うのですが、DBに関することなので特別に対策した方が良い？(検索したらIP制限している例が多かったので質問しました)

* * *

**[リンク先](https://qiita.com/CatMan_PG/items/79443079cb9b2e314210)のセキュリティ対策が分からないのですが、URLを「/hoge」に変更した上で、BASIC認証を付けている？**  
・使用する際は、「/hoge」へアクセスしてBASIC認証に成功した後、ログイン画面が表示されるということですか？

* * *

個人的には、phpMyAdminのログイン画面を推測されにくいURLへ変更すればそれで十分な気もするのですが、一般的には、IP制限したりさらにBASIC認証付けたりするものでしょうか？？




実際に運用しているサイトのログを見るに、URLを推測されにくいものに変更するだけで、不正アクセスの99%くらいは防げると思います。

あとは、IP制限は設定も簡単で効果は絶大なので、できるならやったほうが良いでしょう。

BASIC認証は利便性が悪くなるので、難しいところです。  
社内ではIP制限でBASIC認証なし、社外ではBASIC認証を使うなどの合わせ技もあります。




この手の管理ツールはセキュリティ侵害を受けた場合のダメージが大きいので、インターネットからアクセスできないようにしておくのが基本です。特にphpMyAdminは過去に致命的な脆弱性が何度も発見されており、インターネットにさらして利用するには向いていません。任意コード実行可能な脆弱性の事例もあり、DB以外にもリスクがあります。

内部ネットワークからしかアクセス出来ないようにしておきましょう。レンタルサーバのようなインターネットに孤立したサーバであっても、VPNの経路を作りそちらからしかアクセス出来ないようにしておくようにした方がよいでしょう。

IPアドレスによる制限は次善策です。アクセス元のIPアドレスが固定されており他人と共有していないならそれなりに安全になります。

URLによる隠蔽は外部から攻撃可能な既知の脆弱性をスキャンするようなカジュアルなアタック避け程度にはなりますが、URLは何かと漏洩するものですので、一般にセキュリティ手法と見なされていません。

アクセス制限をした場合でも、認証は必ず設定する必要があります。例えばCSRFのような攻撃にはアクセス制限は無意味です。

phpMyAdminの認証とHTTP認証のどちらを使う方がよいかは使ったことがないのでわかりませんが、HTTP認証の場合BASICではなくダイジェスト認証にしてください。BASIC認証は（ほぼ）生で認証情報が流れますので使ってはいけません。(ブラウザで人が操作する場合以外にはBASIC認証を使わざるを得ない場合もあります）

