critical
環境変数とシークレットを安全にする方法
何が問題か
AI で作ったアプリは、シークレットをクライアント側の環境変数に入れたり、.env ファイルをコミットしたり、バンドルの中で露出させたりして、日常的にシークレットを漏らしています。ブラウザにあるものはすべて公開状態です。シークレットはサーバー側だけに置かなければなりません。
ステップ・バイ・ステップ
- 1
どの変数が公開されるかを把握する
NEXT_PUBLIC_、VITE_、REACT_APP_ といったプレフィックスはブラウザに送られます。本物のシークレットを公開プレフィックスの背後に置かないでください。置いてよいのは機微でない設定だけです。
- 2
シークレットをサーバー側に保つ
API のシークレット、service-role キー、トークンはサーバー専用の環境変数に保存し、サーバーコードやサーバーレス関数からのみアクセスしてください。
- 3
.env ファイルを無視し、消去する
.env と .env*.local を .gitignore に追加してください。シークレットを一度でもコミットしたなら、ローテーションして git 履歴から消去してください。そうしないと古いコミットに残ります。
- 4
スキャンして検証する
デプロイ済みのバンドルとリポジトリに露出したキーがないかスキャンし、漏れたものはすべてローテーションしてください。
修正するだけでなく、検証もしてほしいですか?
修正は第一歩にすぎません。ClearedToShip のレビューなら、修正が本当に有効かを確認し、ローンチのための署名入り・保険付きのクリアランスを発行します。早期アクセスに参加: