DB 연결 정보 보안 질문..

안녕하세요, api server 소스 코드에 하드 코딩 된 db 연결 정보를 수정하려고 합니다.

검색을 해보니… 환경 변수로 만드는 방법, XML 파일에 db 연결 정보 담아서 가져오는 방법… 등이 있었는데요.

xml 파일에 db 연결 정보를 저장해서, 소스 코드에서 xml 파일을 불러다 쓰는 방법을 해보려고 합니다. 이 방법을 사용하려면 암호화(?)는 어떻게 해줘야 할까요…

xml 파일 자체를 암호화 한다면, 이걸 코드에서 불러다 쓰고 복호화 할 때 암호화 할 때 쓰인 특정 값을 코드에 넣는다면, 효과가 없을 것 같은데…

DB 연결 정보를 하드 코딩 하지 않고 관리하려면 어떻게 하면 좋을까요!

2개의 좋아요

‘api server’ 서버 인데

즉 서버 내부에서 처리되는데 db 연결 정보를 암호화 해서 관리해야 할 필요가 있나요 ?

db연결 정보가 노출 된거면
소스코드가 노출 된것과 마찬가지이며.,
소스코드가 노출 된거면 암호화가 되어 봤자 복호화 코드가 노출되어 무용지물이고.,
서버 자체가 뚫린 것과 같다고 봐야 하지 않을까요?


그냥 코드단 암호화 처리 보단 그냥 서버 OS에 보안 최신 업데이트 정기적으로 실행하고,
방화벽 등 내부 보안을 잘 지키면 될 것 같습니다.


혹시 형상관리에서 소스코드에 db 연결 문자 노출 부분이 우려 되시는 거라면
github 등 에서 제공되는 시큐어Key 로 관리할 수 있습니다.

5개의 좋아요

답변 감사합니다!!

우선 첫번째 알려주신 부분은 혹시나, 서버가 해킹 당할까봐 암호화 하려고 했었는데 답변해주신 내용보니 내부 보안을 지키면 될 것 같구요!

2번째 알려주신 부분도 맞아요!! git 으로 관리(private) 하고 있는데… 좀 찜찜 했었거든요. 알려주신 시큐어key 라는 부분 알아보겠습니다

3개의 좋아요

소스 코드가 형상관리 중이라면(예를 들면 github 같은 저장소에서)
어떠한 형태로든 소스 코드(를 포함해서 소스 코드 저장소에 보관되는 모든 파일)에 민감 정보가 들어가는 것은 좋지 않아요.
(아무리 private 저장소라도 실제 개발할 때에는 소스 코드 자체가 여러 작업자 PC 에 저장될 것이기 때문에…)

그래서 대표적으로는 Vault 같은 서비스를 붙여서 외부로 노출되면 안 되는 주요 정보들을 관리하기도 하죠.

근데 Vault 자체가 쉽게 사용할 수 있는 건 아니라서 좀… 배보다 배꼽이 더 큰 상황이 생기기도 합니다…

Azure 를 이용하신다면 Azure KeyVault 를 사용하는 것을 추천 드려요. ㅇㅅㅇ/

3개의 좋아요

이런것도 도움일 되려나요??

Safe storage of app secrets in development in ASP.NET Core | Microsoft Learn

2개의 좋아요

정보 감사합니다!!

3개의 좋아요