アプリの脆弱性についてはこれくらいにして、最後にGitHubを利用する際の注意点をお伝えします。秘密情報はGitHubのリポジトリにアップロードしないようにしてください。理解している方がほとんどだと思いますが、基本として大切な点なので改めて確認します。
リポジトリの公開・非公開
Claude Code入門やHarness講座で、皆さんGitHubのリポジトリを作ったかと思います。GitHubのリポジトリはプライベートとパブリックを選べます。
- パブリック:公開状態。第三者にすべてのコードが見られてしまいます。
- プライベート:第三者には見えない状態です。
公開状態、特にパブリックで公開する場合、たとえば環境変数のファイルを含めてしまうと、それがすべて見られてしまいます。だからリポジトリを公開する場合は、環境変数などをきちんと隠さなければなりません。
.gitignore で除外する
隠すには .gitignore ファイルを使います。ここに、リポジトリで管理したくないファイルを指定します。たとえば次のように記述します。
.env*
これは .env 以降のファイル名のファイルをすべて除外するという意味で、GitHubのリポジトリで管理しないようにします。.env.local ファイルには、たとえばSupabaseのサービスロールキーなど、バレたらまずい情報が入っているため、これで除外します。
リポジトリを作ってプッシュする
実際にGitHubリポジトリを作って管理してみましょう。GitHub CLIを持っている方は、リポジトリ作成からプッシュまでClaude Codeが行ってくれます。
GitHubの取り扱いが難しく感じる方も、まずはコードのセーブポイントだと思って活用してください。例えばVercelにデプロイするときはGitHubのリポジトリ経由で行うので、add / commit / push くらいのコマンドは理解しておくとよいでしょう。なお、GitHubの運用戦略(git flow)については「Claude Code Harness実践」の講座で解説しています。
シークレットの警告
コミットしようとしたところ、コードにサービスロールキーがハードコードで書かれていると警告が出ました。今回はサンプルのJSやPlaywright MCPに含まれていたため、それを除外しました。
最近はOpus 4.8になって賢くなり、デフォルトでセキュリティが割と強いので、そこまでローレベルのミスを気にする必要は少なくなってきています。
プライベートモードでプッシュした後、リポジトリを見てみると .gitignore は見えても問題ありませんが、.env.local は含まれていません。きちんと無視されていることが分かります。公開する理由がない場合は、プライベートモードでリポジトリを作るとさらに安全です。
過度に恐れずにリリースしよう
バイブコーディングで気をつけてほしいのは、これまでのお話を守っていただければ、アプリとしてリリースできるくらいのものはAIで作れる、ということです。リリースが怖い方もいらっしゃると思いますが、セキュリティに関しては気にしてもキリがないところもあります。ある程度AIに調査をさせて、問題ないと思ったらリリースしてしまいましょう。