29 lines
1.0 KiB
Plaintext
29 lines
1.0 KiB
Plaintext
🏗️ VaultKeeper 프로젝트 상세 설계도 (Ver 2.0)
|
|
1. 개요
|
|
목적: Nginx의 .htpasswd 파일을 웹 GUI를 통해 관리하는 초경량 도구.
|
|
|
|
타겟 환경: Google Cloud e2-micro (저사양 서버).
|
|
|
|
주요 언어: Go (백엔드), Vanilla JS (프론트엔드).
|
|
|
|
2. 보안 전략 (핵심)
|
|
인증 분리: 백엔드 자체에 로그인 로직을 구현하지 않고, Nginx의 auth_basic 모듈에 인증을 위임함.
|
|
|
|
접근 권한: 서버 관리자가 터미널에서 직접 생성한 계정으로만 웹 UI에 접근 가능.
|
|
|
|
입력값 검증: os/exec 실행 시 쉘 인젝션을 방지하기 위해 사용자 이름에 특수문자 입력을 제한함.
|
|
|
|
3. 구성 요소
|
|
Backend (main.go):
|
|
|
|
환경 변수 HTPASSWD_PATH를 통해 대상 파일 경로 지정.
|
|
|
|
표준 패키지 net/http를 사용하여 메모리 점유 최소화.
|
|
|
|
htpasswd 시스템 명령어를 서브프로세스로 호출하여 계정 추가/삭제.
|
|
|
|
Frontend (index.html):
|
|
|
|
단일 파일 SPA 구조.
|
|
|
|
Tailwind CSS(CDN)를 활용한 직관적인 대시보드. |