application.properties 파일을 올려버린 건에 관하여

알쓸코딩·2024년 12월 1일
0

트러블 슈팅

목록 보기
10/13

필자는 방금 application.properties을 잘못올려서 api-key가 노출되었다!


이 오류는 GitHub의 보안 기능이 커밋 히스토리에서 OpenAI API 키를 감지했기 때문에 발생한 것이라고 한다.

다행히 아래 명령어를 통해 커밋사항을 되돌릴 수 있었다.

# 저장소를 처음 상태로 초기화
git reset --hard HEAD~2

# Git 캐시 삭제
git rm -r --cached .

# application.properties 파일에 직접 들어가서 더미데이터로 key 수정!


git add .
git commit -m "Initial commit without sensitive information"

git push -f origin main

다음번에는 이 사태를 방지하고자 백엔드에서 github에 올리면 안되는 파일들과 프론트에서 git hub에 올리면 안되는 파일들에 대해서 알아보고자 한다.

1. 백엔드 민감 정보 ⚠️

1.1 환경 설정 파일

application.properties / application.yml

DB 접속 정보 (URL, username, password)
API 키 (OpenAI, AWS, Google 등)
JWT Secret Key
메일 서버 정보 및 계정
OAuth 관련 정보

💡 Why? 이러한 정보가 노출되면 해커가 DB에 접근하거나, API 키로 과금을 발생시킬 수 있다!

1.2 개발 환경 파일

.env 파일
/target, /build 폴더 (빌드 결과물)
IDE 설정 파일 (.idea/, .vscode/)
로그 파일 (*.log)

💡 Why? 개발 환경 설정 파일에는 로컬 경로나 시스템 정보가 포함될 수 있어 보안 취약점이 될 수 있다.

2. 프론트엔드 민감 정보 🌐

2.1 환경 변수 파일

plaintextCopy.env
.env.local
.env.development
.env.production

💡 Why? 프론트엔드의 환경 변수 파일에도 API 키나 서비스 엔드포인트 등 민감한 정보가 포함될 수 있다.

2.2 개발 환경 관련 파일

plaintextCopy/node_modules/ # 의존성 모듈
/.next/ # Next.js 빌드 결과물
/dist/ # 빌드 결과물
.DS_Store # Mac 시스템 파일

2.3 API 키 및 민감한 정보

Firebase 설정 파일
Google Analytics 키
소셜 로그인 정보
결제 시스템 키
Map API 키

💡 Why? 이러한 키들이 노출되면 서비스 과금 폭탄을 맞거나, 악의적인 사용자가 서비스를 도용할 수 있다!

3. 안전한 관리 방법 🛡️

1. .gitignore 파일 설정

# 환경 설정 파일
.env
*.properties

#### 빌드 결과물
/build/
/dist/
/node_modules/

# 시스템 파일
.DS_Store
*.log

2. 예시 파일 제공

  • application.properties.example
  • .env.example
  • 실제 값 대신 더미 값 사용

3. 환경 변수 안전하게 공유

  • 팀 내부 암호화된 채널 사용
  • 비밀번호 관리 도구 활용
  • CI/CD 환경 변수 활용

4. 실수로 올렸다면? 🚨

즉시 해당 키 폐기/재발급
git history에서 완전히 제거
팀원들에게 상황 공유
보안 모니터링 강화

💡 TIP: 커밋하기 전에 항상 git status로 변경사항을 확인하는 습관을 들이면 좋다!

profile
알면 쓸데있는 코딩 모음!

0개의 댓글