본문 바로가기

개발

개발시 필수 체크할 보안, .gitignore로 민감한 정보를 숨기기

code example
코드에 모든 정보를 넣는 경우, 여기는 개인정보가 없기 때문에 심각한 문제가 되지는 않는다.

 

외부 API를 이용할 때, 단순히 URL만 입력하면 되는 경우도 있지만, 사용자의 아이디나 패스키를 입력해야 하는 경우가 생긴다.

 

그런 경우는 비용이 드는 처리이거나

데이터베이스의 민감한 정보를 다루는 경우가 대부분이기 때문에, 소스코드에 절대 포함시키지 않아야 한다.

 

 

실수로라도 포함하고 github등에 업로드하면, 이런 정보를 수집하는 봇에 의해 악용되어 도저히 감당할 수 없는 비용 청구를 받게 된다.

 

 

따라서 해당 정보는 환경변수별도의 파일을 만든 뒤 gitignore를 활용하여 코드에서 제외하여야 한다.

 

 

여기서는 별도의 파일을 만들고 gitignore를 활용하여 제외한 뒤 편의를 위해 .example파일을 별도로 만들어보겠다.

dot ENV file and dot ENV example file
.env와 .env.example 파일

repo의 최상위 디렉토리에 새로 .env와 .env.example를 생성한다.

 

.env에는 진짜 정보를 포함, .env.example에는 어떤 정보가 필요한지 사용자에게 안내하는 예시 템플릿 파일이다.

 

 

dot git ignore file
.git ignore 파일

.gitignore은 커밋에 포함시키지 않을 확장자나 파일을 지정해준다.

 

여기서 .env확장자를 지정해주면, .example확장자인 .env.example파일은 포함되고 .env파일은 포함되지 않는다.

 

git에서는 .env.example파일만 인식한다

 

실제로 .env가 포함되었는지, CLI나 확장프로그램 등으로 꼭 확인하도록 하자.

 

만에하나 정보가 잠시라도 올라가게 되면 그즉시 패스키는 폐기하여야 한다.

 

 

 

여기서 조금 추가하자면 .env.production과 같은 형식으로 env파일을 사용하는 경우가 있으므로 모든 .env라는 문자가 포함된 파일을 제외하는게 좋다. (.env.*)

 

ignore every dot ENV files but dot ENV example file.
.env파일은 모두 제외하는 것이 좋다.

 


그러면 .env.example도 제외가 되기 때문에 이 파일만 예외로 처리해준다(!.env.example)