Show GN: Blinder - AI Agent용으로 프로젝트의 시크릿을 가려주는 CLI 도구
(github.com/YellowC-137)안녕하세요.
프로젝트를 AI Agent에게 맡길때 마다 수동으로 중요 데이터들을 일일이 지우자니 너무 번거로워서 명령어 한 번으로 정보를 가려주는 자동화 도구를 직접 만들어봤습니다.
기존 프로젝트를 AI 에이전트에 넘기기 전, 소스 속 하드코딩된 API 키·자격증명·인증서 등등이 외부로 유출되는 것을 사전 차단합니다.
-
정규식으로 찾은 의심 문자열이 실제 코드의 "문자열 리터럴(String Literal)" 내부에 있는지 구문 분석을 통해 2차 검증합니다.
-
단순 마스킹이 아닌 코드 자동 변환 (Auto-fix)
하드코딩된 시크릿을 .env 파일로 빼내고, 소스코드는 각 언어에 맞게 process.env.API_KEY, System.getenv(), @Value 등으로 자동 치환해 줍니다. -
플랫폼 맞춤형 파일 처리:
단순 소스코드뿐만 아니라 iOS의 Info.plist, Android의 build.gradle, Flutter의 pubspec.yaml, Spring의 application.yml 등 빌드/설정 파일에 있는 시크릿도 각각의 파서를 통해 정밀하게 분리하도록 해봤습니다.
주요기능은
하드코딩된 키,URL 등의 시크릿을 .env로 분리하고 코드를 자동 변환 해주는
blinder blind
- String apiKey = "sk_live_abc123..." # Before
+ String apiKey = BuildConfig.STRIPE_KEY # After (빌드 가능)
AI Agent용 read only 프로젝트를 생성하는
blinder mask
- apiKey: "AIzaSy9xK2mP3rT..." # Before
+ apiKey: "__BLINDER_VAR__FIREBASE_API_KEY" # After (빌드 불가)
가 있습니다.
Node.js 환경에서 글로벌로 설치하여 즉시 사용해 보실 수 있습니다.
Bash
npm install -g github:YellowC-137/Blinder
현재 iOS, Android, Flutter, Node.js, React, Spring Boot, Ruby 환경을 지원하며, 지속적으로 플랫폼을 추가하고 있습니다.
초기 단계의 오픈소스라 부족한 점이 있을 수 있습니다.
많은 피드백 부탁드립니다 감사합니다!
GitHub Repo: https://github.com/YellowC-137/Blinder