āđāļāļāļēāļāļ° System Architect āļāļĩāđāļāļđāđāļĨāļĢāļ°āļāļāļāļāļāđāļāļĢ āļāļēāļĢāđāļāđāļēāļāļķāļāđāļāļĢāļ·āđāļāļāļĄāļ·āļāļāļąāļāļāļēāļĢāļāļēāļāļāđāļāļĄāļđāļĨāļāļĒāđāļēāļ phpMyAdmin āļāļģāđāļāđāļāļāđāļāļāļĄāļēāļāļĢāđāļāļĄāļāļąāļāļĄāļēāļāļĢāļāļēāļĢāļĢāļąāļāļĐāļēāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāļāļĩāđāđāļāđāļĄāļāļ§āļāļāļĩāđāļŠāļļāļ āļāļāļāļ§āļēāļĄāļāļĩāđāļāļ·āļāļāļđāđāļĄāļ·āļāļāļāļąāļāļŠāļĄāļāļđāļĢāļāđāđāļāļāļēāļĢāļāļīāļāļāļąāđāļ phpMyAdmin āļāļ Nginx āļāļ Ubuntu āđāļāļĒāđāļāđāļāļāļēāļĢāđāļāļ·āđāļāļĄāļāđāļāļāļąāļāļāļēāļāļāđāļāļĄāļđāļĨ PostgreSQL āđāļĨāļ°āļĒāļāļĢāļ°āļāļąāļāļāļēāļĢāļāđāļāļāļāļąāļāđāļŦāđāđāļāđāļāļĢāļ°āļāļąāļ Enterprise Isolation āđāļāļ·āđāļāļŠāļāļąāļāļāļąāđāļāļāļēāļĢāļŠāđāļāļāļāļēāļāļāļāļāđāļĨāļ°āļāļđāđāļāļļāļāļĢāļļāļāļ āļēāļĒāļāļāļāđāļāđāļāļĒāđāļēāļāļĄāļĩāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļ
ðĄïļ āļŦāļĨāļąāļāļāļēāļĢāļĢāļąāļāļĐāļēāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāļĢāļ°āļāļąāļ Enterprise
āļāļēāļĢāļāļīāļāļāļąāđāļāļāļĩāđāļāļĨāļāļāļ āļąāļĒāđāļĄāđāđāļāđāļŦāļĄāļēāļĒāļāļķāļāđāļāđāļāļēāļĢāļāļīāļāļāļąāđāļāđāļāđāļāđāļāļ āđāļāđāļŦāļĄāļēāļĒāļāļķāļāļāļēāļĢāļāļģāļāļąāļāļāļāļāđāļāļāļāļēāļĢāļāļģāļāļēāļ (Least Privilege) āđāļĢāļēāļāļ°āđāļāđ 3 āđāļāļāļāļīāļāļŦāļĨāļąāļāđāļāļāļēāļĢāļāđāļāļāļāļąāļ:
- HTTP Basic Authentication: āļāļēāļĢāļĨāđāļāļāļāļąāđāļāļŦāļāđāļēāļāđāļēāļāļāđāļ§āļĒ Username/Password āļāļĩāđāđāļĄāđāđāļāļīāļāđāļāļĒāđāļāđāļāđāļ
- Obscurity Subdomain: āļāļēāļĢāļāđāļāļ URL āļāļĢāļīāļāļāļāļ phpMyAdmin āļāđāļ§āļĒ Subdomain āļāļĩāđāđāļĄāđāļĄāļĩāļāļ§āļēāļĄāļŦāļĄāļēāļĒ
- open_basedir: āļāļēāļĢāļāļģāļāļąāļāļāļ·āđāļāļāļĩāđāļāļĩāđāļāļĢāļ°āļāļ§āļāļāļēāļĢ PHP āļŠāļēāļĄāļēāļĢāļāđāļāđāļēāļāļķāļāđāļāļĨāđāđāļāđ āđāļāļ·āđāļāļāđāļāļāļāļąāļāļāļēāļĢāđāļāļĄāļāļĩāđāļāļ Directory Traversal
âïļ āļāļąāđāļāļāļāļāļāļĩāđ 1: āļāļēāļĢāļāļīāļāļāļąāđāļāđāļĨāļ°āđāļāļĢāļĩāļĒāļĄāļĢāļ°āļāļ PostgreSQL
āđāļāļ·āđāļāļāļāļēāļāļĢāļ°āļāļāļŦāļĨāļąāļāļāļāļāđāļĢāļēāđāļāđ PostgreSQL āđāļĢāļēāļāļ°āļāđāļāļāļĄāļąāđāļāđāļāļ§āđāļē phpMyAdmin āļāļđāļāļāļģāļŦāļāļāļāđāļēāđāļŦāđāđāļāļ·āđāļāļĄāļāđāļāļāļąāļ PostgreSQL āđāļāđāļāļĒāđāļēāļāļāļđāļāļāđāļāļ āđāļĨāļ°āđāļĢāļēāļāļ°āļŠāļĢāđāļēāļ User āđāļāļāļēāļ°āļāļīāļāļāļĩāđāļāļđāļāļāļģāļāļąāļāļŠāļīāļāļāļīāđāđāļŦāđ phpMyAdmin āđāļāđāļāļēāļāđāļāđāļēāļāļąāđāļ
SQL
-- 1. āļŠāļĢāđāļēāļ User āļŠāļģāļŦāļĢāļąāļ phpMyAdmin āđāļāļĒāđāļāļāļēāļ° (Read-Only Access)
CREATE USER pma_user WITH PASSWORD 'SecurePassword123';
-- 2. āļāļģāļŦāļāļāļŠāļīāļāļāļīāđāđāļŦāđāļāļđāđāđāļāđāļāļĩāđāļŠāļēāļĄāļēāļĢāļāđāļāđāļēāļāļķāļ Schema āļāļĩāđāļāđāļāļāļāļēāļĢāđāļāđāđāļāđāļēāļāļąāđāļ
GRANT CONNECT ON DATABASE your_database TO pma_user;
-- 3. (Optional) āļāļģāļāļąāļāļŠāļīāļāļāļīāđāđāļŦāđāđāļāđāļ Read-Only āđāļāļ·āđāļāļāđāļāļāļāļąāļāļāļēāļĢāđāļāļĨāļĩāđāļĒāļāđāļāļĨāļāļāđāļāļĄāļđāļĨ
ALTER USER pma_user WITH NOSUPERUSER NOCREATEDB NOCREATEROLE;
ð āļāļąāđāļāļāļāļāļāļĩāđ 2: āļāļēāļĢāļāļąāđāļāļāđāļē Nginx āđāļĨāļ° PHP (The Hardening)
āļŦāļĨāļąāļāļāļēāļāļāļīāļāļāļąāđāļ phpMyAdmin āđāļĨāļ°āļāļąāđāļāļāđāļē Nginx Virtual Host āđāļĨāđāļ§ āļāļąāđāļāļāļāļāļāļĩāđāļŠāļģāļāļąāļāļāļĩāđāļŠāļļāļāļāļ·āļāļāļēāļĢāđāļāļīāđāļĄ Layer āļāļāļāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒ:
- āļāļēāļĢāļāļģāļāļąāļāļāļ·āđāļāļāļĩāđ (open_basedir): āđāļāđāđāļāđāļāļĨāđ php.ini āđāļāļ·āđāļāļāļģāļŦāļāļāļāđāļē
open_basedirāđāļŦāđāļāļĩāđāđāļāļāļēāļ° Directory āļāļĩāđāļāļģāđāļāđāļāđāļāđāļēāļāļąāđāļ āđāļāļ·āđāļāļāđāļāļāļāļąāļāļāļēāļĢāđāļĢāļĩāļĒāļāđāļāđāđāļāļĨāđāļ āļēāļĒāļāļāļ - Basic Auth: āđāļāđāđāļĄāļāļđāļĨ
nginxāđāļāļ·āđāļāļāļąāļāļāļąāļāđāļŦāđāļāļđāđāđāļāđāļāļēāļāļāđāļāļāđāļŠāđ Username/Password āļāđāļāļāđāļāđāļēāļāļķāļ URL āļāļāļ phpMyAdmin - Obscurity: āđāļāļāļāļĩāđāļāļ°āđāļāđ
phpmyadmin.example.comāđāļŦāđāđāļāđadmin-tools.example.comāđāļāļ·āđāļāļĨāļāđāļāļāļēāļŠāļāļĩāđāļāļāļāļāļ°āļŠāđāļāļāđāļāļ
â āļāļāļŠāļĢāļļāļ: āļĢāļ°āļāļāļāļĩāđāđāļāđāļāđāļāļĢāđāļāđāļĨāļ°āļāļĨāļāļāļ āļąāļĒ
āļāđāļ§āļĒāļāļēāļĢāļāļŠāļēāļāļĢāļ§āļĄāļĢāļ°āļŦāļ§āđāļēāļ Nginx, PHP, āđāļĨāļ° PostgreSQL āđāļāđāļēāļāđāļ§āļĒāļāļąāļ āļāļĢāđāļāļĄāļāļąāļāļāļēāļĢāđāļāđāđāļāļāļāļīāļāļāļēāļĢāļāđāļāļāļāļąāļāđāļāļāļŦāļĨāļēāļĒāļāļąāđāļ (Multi-Layer Defense) āđāļĄāđāļ§āđāļēāļāļ°āđāļāđāļāļāļēāļĢāļāļģāļāļąāļāļŠāļīāļāļāļīāđāļāļđāđāđāļāđ (Least Privilege), āļāļēāļĢāļāļģāļāļąāļāļāļ·āđāļāļāļĩāđāļāļģāļāļēāļ (open_basedir), āđāļĨāļ°āļāļēāļĢāļāđāļāļ URL (Obscurity) āļāļģāđāļŦāđ phpMyAdmin āļāļāļāļāļļāļāļāļĨāļēāļĒāđāļāđāļāđāļāļĢāļ·āđāļāļāļĄāļ·āļāļāļąāļāļāļēāļĢāļāļēāļāļāđāļāļĄāļđāļĨāļāļĩāđāļāļĢāļāļāļĨāļąāļāđāļĨāļ°āļāļĨāļāļāļ āļąāļĒāļāļĩāđāļŠāļļāļāļŠāļģāļŦāļĢāļąāļāļŠāļ āļēāļāđāļ§āļāļĨāđāļāļĄāļĢāļ°āļāļąāļāļāļāļāđāļāļĢ (Enterprise Grade) āļāļĒāđāļēāļāđāļāđāļāļĢāļīāļ