𝗦𝗲𝗰𝘂𝗿𝗶𝘁𝘆 𝗖𝗵𝗲𝗰𝗸𝗹𝗶𝘀𝘁 𝗳𝗼𝗿 𝗩𝗶𝗯𝗲 𝗖𝗼𝗱𝗶𝗻𝗴
AIによって、技術的なバックグラウンドを持たない人々でもソフトウェアを構築できるようになりました。ある研究者がClaudeを使って、動かなくなったプラットフォームを復活させるのを目にしました。彼女はプロの開発者ではないにもかかわらず、コストを削減し、パフォーマンスを向上させたのです。
これは素晴らしいことですが、同時にリスクも伴います。
Vibe Codingとは、基礎となるコードやアーキテクチャを習得することなく、AIの強力な助けを借りてソフトウェアを構築することを指します。コードを本番環境に投入するのであれば、あなたは開発者です。つまり、責任を負うということです。
個人のブログをVibe Codingするのは問題ありません。しかし、決済、ログイン、ユーザーデータを含むシステムをVibe Codingするのは話が別です。AIは優れたコードを書くことができますが、同時に危険なセキュリティ上の欠陥を生み出すこともあります。
Webプロジェクトの管理にAIを使用する場合は、単に「動くようにして」と頼むだけでは不十分です。リスクを見つけるためにAIを活用してください。公開前に、以下の質問を使ってプロジェクトを監査しましょう。
- 機密領域の特定:ログイン、決済、個人データはどこにありますか?
- 機密情報の露出チェック:Stripeキー、パスワード、データベースの認証情報が、コードやフロントエンドから見える状態になっていませんか?
- 依存関係の監査:ライブラリが古かったり、既知の脆弱性が含まれていたりしませんか?
- 認証の確認:ユーザーはどのようにログインしますか?セッションやクッキーは正しく設定されていますか?
- 認可の確認:一般ユーザーがURLのIDを変更するだけで、管理者データにアクセスできてしまいませんか?
- 管理者機能の保護:管理パネルはUI上で隠されているだけですか?それともサーバー側でブロックされていますか?
- 決済の検証:サーバーはWebhook経由で決済を確認していますか?それともフロントエンドの情報をそのまま信じてしまっていませんか?
- Webhookのテスト:誰かがシステムに対して偽の決済通知を送ることはできませんか?
- すべての入力値の検証:フォームや検索バーはインジェクション攻撃に対して保護されていますか?
- 利用制限:ボットがログインや検索ツールにスパム攻撃を行い、コストを増大させることはありませんか?
- エラーログの監視:エラーメッセージによって、データベースの詳細やパスワードがユーザーに漏洩していませんか?
- ファイルアップロードのセキュリティ:攻撃を防ぐために、ファイル形式やサイズを制限していますか?
- 環境の比較:本番環境で誤ってテスト用のキーやデバッグモードを使用していませんか?
- シンプルなテストの作成:ユーザーが他人のデータにアクセスできないことを証明できますか?
- 不確実性について尋ねる:AIに「あなたが検証できないセキュリティリスクは何ですか?」と尋ねてみてください。
AIに「プロジェクトは安全ですか?」と聞かないでください。代わりに、「どこに不確実性があるか」を示させるようにしてください。
プロジェクトが実在の人物や実資産に影響を及ぼす場合は、専門家の助けを求めてください。AIは、より良い問いを立てるために活用すべきであり、人間の監視に取って代わるためのものではありません。
出典: https://dev.to/marciofrayze/15-perguntas-de-seguranca-para-quem-esta-praticando-vibe-coding-1h7j