2.1 KiB
2.1 KiB
개인정보·보안 현황
현재 구현 기준. 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 참고) |
| 로그의 mb_id 마스킹 | ❌ 미적용 |
| DB 연결 암호화(TLS) 설정 | ❌ 앱 설정 없음 |