Blinder - AI Agent向けにプロジェクトのシークレットを隠すCLIツール
(github.com/YellowC-137)こんにちは。
プロジェクトをAI Agentに渡すたびに重要なデータを毎回手作業で一つずつ消すのがあまりにも面倒だったので、コマンド一発で情報を隠せる自動化ツールを自作してみました。
既存のプロジェクトをAIエージェントに渡す前に、ソース内にハードコードされたAPIキー・認証情報・証明書などが外部へ流出するのを事前に防ぎます。
-
正規表現で見つけた疑わしい文字列が、実際にコードの「文字列リテラル(String Literal)」内にあるかを構文解析によって二次検証します。
-
単純なマスキングではなくコードの自動変換(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向けの読み取り専用プロジェクトを生成する
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
まだコメントはありません。