POSA_LEAKSMS/firmware/.gitignore
유창욱 90f121e14c chore: import codebase with security hardening
SHT30 온습도 모니터링 시스템 전체 소스(서버 PHP, STM32 펌웨어, SQL, 테스트).
전체 코드리뷰에서 도출된 보안 하드닝 10건 반영:
- 요청 서명 HMAC-SHA256 전환(펌웨어 sig.c/서버 config.php/호스트 패리티 동시)
- 재전송 방어 + 기본 API_KEY fail-closed + 디바이스 문자열 정제(api/sensor_data.php)
- 오프라인 SMS 중복 발송 경합 제거(cron_heartbeat.php, 원자적 선점)
- CSV 수식 주입 방지(monthly_report.php), 감사로그 회전 락(retention_cleanup.php)
- 브루트포스 카운터 원자화(login.php), 예시 TOTP 비밀키 무효화, 마이그레이션 멱등화

_backup/(하드코딩 실 비밀값 포함)·config.local.php·런타임 상태는 .gitignore 제외.
2026-06-20 09:37:40 +09:00

70 lines
2.4 KiB
Text

# =============================================================================
# firmware/.gitignore - STM32F407 펌웨어
# =============================================================================
# ── 빌드 산출물 ──────────────────────────────────────────────────────────────
build/
out/
cmake-build-*/
CMakeFiles/
CMakeCache.txt
cmake_install.cmake
*.ninja
.ninja_deps
.ninja_log
compile_commands.json
# 오브젝트/라이브러리/실행 이미지
*.o
*.obj
*.a
*.lib
*.elf
*.bin
*.hex
*.srec
# 링커/디버그 부산물
*.map
*.lst
*.su # -fstack-usage
*.d # gcc 의존성 파일
*.dump
*.list
# ── 비밀값 (절대 커밋 금지) ──────────────────────────────────────────────────
# 운영자가 secrets.h.example 을 복사해 만든 실제 비밀값. (APP_API_KEY 등)
common/secrets.h
secrets.h
*.key
*.pem
# 단, 예시 템플릿은 추적한다.
!common/secrets.h.example
# ── 인증서 작업 산출물 ───────────────────────────────────────────────────────
# 운영자가 추출한 원본 PEM/체인은 커밋하지 않는다(임베드된 server_ca.c 만 추적).
certs/*.pem
certs/*.crt
certs/chain_all.pem
certs/cafe24_root.pem
# ── 벤더링된 제3자 소스 (대용량, 외부 저장소 사본) ──────────────────────────
# 폐쇄망용으로 빌드 머신에서 vendor.ps1/vendor.sh 로 채운다. git 미추적.
# (README/스크립트는 추적, 실제 소스 트리는 제외)
third_party/*
!third_party/README.md
!third_party/vendor.ps1
!third_party/vendor.sh
# ── 호스트 테스트 부산물 ─────────────────────────────────────────────────────
test/host/__pycache__/
*.pyc
# ── IDE / OS ─────────────────────────────────────────────────────────────────
.vscode/
.idea/
.cache/
*.swp
*~
Thumbs.db
.DS_Store