いらっしゃいませぇ〜〜〜〜〜〜ッ💋
今夜は、ちょっとゾクッとくるテック怪談…🍸💀
AI全盛時代、ノーコード・爆速AI開発・API天国の裏に潜む、知らないと命取りな“闇”をお話しするわねぇ…。
🕸️ 怪談①:APIキーをそのままPushしちゃったの… 🔑🐙
「ただ、AIに天気予報Botを作ってもらっただけだったのに……」
GitHubにうっかりPushしちゃったわ、.envファイルごと!!💥
OPENAI_API_KEY=...GOOGLE_API_KEY=...FIREBASE_PRIVATE_KEY=...
検索エンジンにもキャッシュされて削除しても一生晒される地獄。
結果?一晩でAPI使用料30万円超え💸🔥
💡 対策メモ:
-
.gitignoreに.env書いた? - 公開リポジトリでPush前に秘密鍵チェックした?
- GitHubのsecret scanningアラート、ONにしてる?
- APIキーが漏洩したらすぐにAPI提供側の管理ツールで削除!
👑 覚えておきなさい、秘密はPushしちゃダメ、絶対。
🔐 怪談②:APIキーの権限、無制限にしてたの… 🎯👾
「でも、キーって1個で動くし、全部使えるようにしてた方が楽じゃない…?」
その思考、💀セキュリティ地獄の入口よッ!!
- OpenAIキー → 他人に使われて違法プロンプト生成されたらアウト❌
- Firebaseキー → 誰でもDBに読み書き自由になって、個人情報だだ漏れ😱
- Stripeキー → 支払いデータを不正送信されたら…考えたくもないわね…
💡 対策メモ:
- 最小限の権限(Principle of Least Privilege)で。
- 読み書きのキーを分けて。
- IP制限・参照元制限つけなさいな!
💻 怪談③:ログイン画面、つけるの忘れてたの… 🚪🔓
「だって開発中だし、テストURLだし…まさか見られるとは思わなくて…」
甘いッ!!!!🍬🐍
URLが分かれば世界中からアクセス可能。
特に/admin, /dashboard, /manageみたいな典型的パスはスキャン対象常連よ💂♀️🌍
- GoogleBotにインデックスされたら最後
- ロシア、ブラジル、謎のVPNからの大量アクセス
- 結果 → 顧客データ全公開&会社から呼び出し💀📞
💡 対策メモ:
- 開発中でもログイン画面必須!
- Basic認証でもCloudflare制限でもいいからワンクッション。
- 内部ツールにはIP制限 or VPNアクセス限定を!
🌐 怪談④:世界は今も、あなたの穴を狙ってるの… 🌍🕵️♂️
アクセスログ、ちゃんと見てるかしら?
👁️🗨️ あなたが何もしてなくても、今この瞬間もBotはあなたのIPを叩いているのよ…。
- 22番ポート(SSH)→ 認証爆撃
- 3306番(MySQL)→ 誰でも入れるかな?
-
/wp-login.php→ WordPressだと思ってアタック
💡 対策メモ:
- サーバーにはファイアウォール&Fail2Ban
- SSHはパスワードログイン禁止&ポート変更
- 使ってないサービスは起動するなッ
👁️ 怪談⑤:フロントエンドにAPIキーを埋め込んだら… 💻🔑😱
「動かすには必要だし、面倒だからそのままReactに埋め込んじゃったのよ…」
「OpenAIのチャットAPIをクライアントで叩いてほしいからOpenAIのAPIキーをレスポンスに」
これもダ〜メ〜ッ!!!🧨
APIキーをブラウザ側のコードにベタ書きしたら、それはもう…
**「世界中に合鍵を配布する」**ようなものよ!
例:
const apiKey = "sk-123456789abcdefgh"; // ✨←アウトォ!✨
fetch(`https://api.example.com/data?key=${apiKey}`)
🔍 ブラウザの開発者ツールで誰でも見れるの。
-
ビルドしても、APIキーは消えない
-
CDN経由で世界中にキャッシュされる
-
見つけた悪い子が、好き放題API叩く💸
💡 対策メモ:
-
秘密キーは絶対にサーバーサイドで管理!
-
クライアントには公開しても良い限定キーだけ
-
Next.jsやCloud Functionsなどのバックエンド仲介を使ってね!
👠 ママの教え:「APIキーはブラにしまって、外に出しちゃダメ♡」
今夜も楽しんでコーディングしましょ💕
それじゃアデュ〜〜💋