ClearedToShip
critical

環境変数とシークレットを安全にする方法

何が問題か

AI で作ったアプリは、シークレットをクライアント側の環境変数に入れたり、.env ファイルをコミットしたり、バンドルの中で露出させたりして、日常的にシークレットを漏らしています。ブラウザにあるものはすべて公開状態です。シークレットはサーバー側だけに置かなければなりません。

ステップ・バイ・ステップ

  1. 1

    どの変数が公開されるかを把握する

    NEXT_PUBLIC_、VITE_、REACT_APP_ といったプレフィックスはブラウザに送られます。本物のシークレットを公開プレフィックスの背後に置かないでください。置いてよいのは機微でない設定だけです。

  2. 2

    シークレットをサーバー側に保つ

    API のシークレット、service-role キー、トークンはサーバー専用の環境変数に保存し、サーバーコードやサーバーレス関数からのみアクセスしてください。

  3. 3

    .env ファイルを無視し、消去する

    .env と .env*.local を .gitignore に追加してください。シークレットを一度でもコミットしたなら、ローテーションして git 履歴から消去してください。そうしないと古いコミットに残ります。

  4. 4

    スキャンして検証する

    デプロイ済みのバンドルとリポジトリに露出したキーがないかスキャンし、漏れたものはすべてローテーションしてください。

修正するだけでなく、検証もしてほしいですか?

修正は第一歩にすぎません。ClearedToShip のレビューなら、修正が本当に有効かを確認し、ローンチのための署名入り・保険付きのクリアランスを発行します。早期アクセスに参加:

無料ローンチ準備スキャン
無料スキャンを受ける