Files
jongryangje/docs/보안관련/01-개인정보_보안_현황.md
2026-04-08 00:23:55 +09:00

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) 설정 앱 설정 없음