ENV 차이 검사기
두 개의 .env 파일(스테이징과 프로덕션, 배포 전과 배포 후)을 비교하고 비밀처럼 보이는 값이 자동으로 마스킹되어 추가, 제거 또는 변경된 키를 정확히 확인하세요.
결과
스테이징 .env 파일을 프로덕션 파일과 비교하거나 오늘의 배포 구성을 지난 주 파일과 비교하면 실제 중단이 어떻게 시작되는지 알 수 있습니다. 즉, 누락된 DATABASE_URL, 조용히 변경된 PORT, 한 환경에서는 순환되었지만 다른 환경에서는 순환되지 않은 API 키입니다. 두 파일을 일반 텍스트 diff에 붙여넣는 것도 큰 도움이 되지 않습니다. 실제로 어떤 환경 변수가 변경되었는지가 아니라 어떤 줄이 다른지 보여주고 출력을 팀원과 공유하는 순간 모든 비밀 값을 눈에 잘 띄게 인쇄합니다.
이 도구는 dotenv가 실제로 읽는 방식으로 두 파일을 모두 구문 분석합니다. 한 줄에 하나의 KEY=value 쌍, # 주석 및 빈 줄은 무시되고, 작은 따옴표 또는 큰 따옴표로 묶인 값은 따옴표가 없습니다(dotenv 규칙이 지정하는 대로 큰 따옴표 안에만 \n 이스케이프되지 않음). 선택적 내보내기 KEY=value 접두사는 쉘 소스 env 파일이 사용하는 방식을 허용합니다. 각 파일은 깔끔한 키-값 맵이 되고 두 맵은 키별로 다릅니다. 파일 A에만 존재하는 것은 '제거'되고, 파일 B에만 존재하는 것은 '추가'되고, 두 파일 모두에 다른 값이 있는 것은 '변경'되며, 동일한 값은 기본적으로 '변경되지 않고' 숨겨지므로 테이블은 실제로 다른 것에 초점을 유지합니다.
이것을 실제 비밀과 함께 실제로 사용할 수 있도록 안전하게 만드는 기능은 자동 마스킹입니다. diff 테이블에 표시된 모든 값은 두 개의 독립적인 신호에 대해 확인됩니다. 키 이름이 비밀(KEY, SECRET, TOKEN, PASSWORD, PRIVATE 또는 CREDENTIAL과 대소문자를 구분하지 않음)처럼 보이는지, 아니면 값 자체가 높은 Shannon 엔트로피를 갖고 있는지(값의 문자에 대한 동일한 정보 이론적 척도(-Σ p(c)·log2(p(c)))) API 키, 토큰 및 임의 비밀번호를 통계적으로 다른 것으로 표시합니다. 키 이름에 힌트가 없더라도 일반적인 단어입니다. 두 신호 중 하나는 변경된 모든 행의 이전 및 새 측면에 대해 독립적으로 계산된 첫 번째 및 마지막 두 문자까지 값을 마스킹하는 데 충분합니다.
구문 분석, 비교, 엔트로피 점수 매기기, 마스킹 등 모든 것이 브라우저에서 완전히 실행됩니다. 파일이나 그 파일에서 추출된 값은 어디에도 전송되지 않습니다. 이는 실제 데이터베이스 자격 증명, API 키 및 비밀번호가 나란히 포함될 가능성이 있는 두 개의 파일을 살펴보는 전체 작업을 수행하는 도구에 대한 올바른 보장입니다.