# 개인정보·보안 현황 > 현재 구현 기준. DB·세션·로그·화면 접근을 정리한 문서. --- ## 1. 비밀번호 | 항목 | 내용 | |------|------| | **저장** | DB에는 **해시만** 저장 (`password_hash(..., PASSWORD_DEFAULT)` → PHP bcrypt) | | **위치** | `Auth::register`, `Admin\User::store`, `Admin\User::update` | | **검증** | 로그인 시 `password_verify()` 사용. 평문 비밀번호는 저장·전달하지 않음 | --- ## 2. DB에 저장되는 개인정보(비밀번호 제외) - **member 테이블**: `mb_id`, `mb_name`, `mb_email`, `mb_phone` 등은 **평문** 저장. - **암호화**: 애플리케이션 단에서 이 컬럼들에 대한 암호화·복호화는 **없음**. - **DB 연결**: `app/Config/Database.php` 에서 `'encrypt' => false`. DB 연결 구간 암호화(TLS)는 앱 설정에 없음(서버/DB 설정에 따름). --- ## 3. 세션 - **저장 항목**: `mb_idx`, `mb_id`, `mb_name`, `mb_level`, `logged_in` - **비밀번호·이메일·연락처는 세션에 넣지 않음.** --- ## 4. 로그(member_log) - **저장 필드**: `mb_idx`, `mb_id`, `mll_regdate`, `mll_ip`, `mll_msg`, `mll_useragent`, `mll_url`, `mll_referer` 등 - **비밀번호는 로그에 기록되지 않음.** - 로그인 시도 시 **아이디(mb_id)** 는 그대로 저장됨(실패/성공 구분용). 마스킹·축약 저장은 없음. --- ## 5. 화면·접근 - 뷰 출력 시 `esc()` 사용 → **XSS** 방지. - 회원 목록(이름·이메일·연락처 등)은 **관리자만** 조회 가능(`adminAuth` 필터). --- ## 6. 요약 | 구분 | 적용 여부 | |------|-----------| | 비밀번호 해시 저장·검증 | ✅ 적용 | | 세션에 비밀번호 미저장 | ✅ 적용 | | 로그에 비밀번호 미기록 | ✅ 적용 | | 출력 이스케이프(esc) | ✅ 적용 | | 관리자만 회원 목록 조회 | ✅ 적용 | | 이름·이메일·연락처 DB 암호화 | ⚠️ 선택 적용 (키 설정 시 `mb_phone`, `mb_email` 암호화. [03-개인정보_암호화.md](03-개인정보_암호화.md) 참고) | | 로그의 mb_id 마스킹 | ❌ 미적용 | | DB 연결 암호화(TLS) 설정 | ❌ 앱 설정 없음 |