웹사이트 코드에 있는 비밀 키
2분 읽기
사이트의 공개 코드에 들어간 비밀번호나 키를 누구나 읽을 수 있는 이유, 그리고 그런 일이 생겼을 때 무엇을 해야 하는지 설명합니다.
웹사이트의 코드는 방문자의 브라우저에서 실행되므로, 방문자의 브라우저가 그 코드를 내려받아야 합니다. 누구나 그것을 열어서 읽을 수 있습니다.
대부분의 코드에서는 괜찮습니다. 하지만 결제 계정, 데이터베이스, AI 서비스의 키 같은 비밀 값이 그 안에 들어가면 문제가 됩니다.
어떻게 생기나요
일부러 넣는 경우는 거의 없습니다. 테스트하면서 키를 붙여 넣고 그대로 지우지 않기도 합니다. 서버용 설정을 실수로 공개로 표시하기도 합니다. 빌드 도구가 실제 사이트와 함께 소스 맵, 즉 읽기 쉬운 형태의 코드를 게시하기도 합니다.
공격자는 수백만 개의 사이트에서 이런 키를 자동으로 찾습니다. 유출된 키는 몇 시간 안에 요금을 청구하거나, 고객 데이터를 읽거나, 내 이름으로 이메일을 보낼 수 있습니다.
스캔이 하나를 찾았을 때 할 일
- 이미 사용된 것으로 간주하세요. 지금 지우더라도 누군가 이미 가지고 있을 수 있습니다.
- 교체하세요. 키를 발급한 서비스에서 새 키를 만들고, 예전 키는 삭제하세요.
- 서버로 옮기세요. 키는 서버 설정에 있어야 하며, 브라우저에서 실행되는 코드에는 절대 두지 마세요.
- 그 서비스의 요금과 로그를 확인하세요. 내가 하지 않은 일이 있는지 살펴보세요.
일부 키는 공개되도록 설계되어 있습니다. 예를 들어 결제 양식 키는 결제 절차만 시작할 수 있습니다. 스캔은 어떤 종류의 키를 찾았는지, 그리고 그 판단이 얼마나 확실한지 알려 줍니다.
도움이 되었나요?
