◉GEMINI LABEN
●ARGON — gemini-4-argon が 10/13 に GA。複雑なコーディング・エージェント・数学・科学向けです●DEEP RES — deep-research-pro-preview-12-2025 は 10/23 に停止、残り6日。移行先は deep-research-preview-04-2026●NANO — gemini-nano-banana-2.1 が GA(10/06)。gemini-3.1-flash-image は非推奨で停止日は未発表です●MCP — ツール結果が 8.5万トークンに膨らんだ事例を、ADK で 310 トークンに包んで抑えた報告が出ています●FLASH — gemini-3.7-flash と 3.5-flash は新しい Flash モデルに自動で回されます(10/08)●NEW — クラッシュ報告を毎回ゼロから読ませない — 既知バグ早見表を先に grep し…●ARGON — gemini-4-argon が 10/13 に GA。複雑なコーディング・エージェント・数学・科学向けです●DEEP RES — deep-research-pro-preview-12-2025 は 10/23 に停止、残り6日。移行先は deep-research-preview-04-2026●NANO — gemini-nano-banana-2.1 が GA(10/06)。gemini-3.1-flash-image は非推奨で停止日は未発表です●MCP — ツール結果が 8.5万トークンに膨らんだ事例を、ADK で 310 トークンに包んで抑えた報告が出ています●FLASH — gemini-3.7-flash と 3.5-flash は新しい Flash モデルに自動で回されます(10/08)●NEW — クラッシュ報告を毎回ゼロから読ませない — 既知バグ早見表を先に grep し…
記事一覧/高度な活用
⬡ 高度な活用/2026-06-16上級

ユーザー投稿のメディアを Gemini に渡す前段を固める — 安全弁としての検証パイプライン実装メモ

ユーザーがアップロードした画像や動画をそのまま Gemini に流すと、MIME 偽装・EXIF 漏洩・展開爆弾・動画の処理待ちといった落とし穴に次々はまります。先頭バイト判定から Files API の状態ポーリング、後始末までを動くコードで段階的に組み立てます。

gemini119multimodal24security8files-api4advanced12

✦ プレミアム記事

受け口を一つ作った瞬間に増える攻撃面

個人開発でアプリに「写真をアップロードして AI に説明させる」機能をひとつ足すだけで、扱う対象が一気に「自分で用意したデータ」から「他人が送ってくる未知のデータ」へ変わります。私自身、最初に画像分類を組み込んだとき、テスト用に通した1枚の写真の付帯情報に撮影地点の座標が残っていて肝を冷やしました。テキスト入力ならまだ目で追えますが、バイナリのメディアは中身が見えません。拡張子は付け替えられますし、見た目はただの風景写真でも、付帯メタデータに撮影地点の緯度経度が残っていることがあります。

ここで組み立てるのは、ユーザー由来のメディアが Gemini に届く前に必ず通る「安全弁」です。題材は google-genai SDK 単体で、外部の重いフレームワークは持ち込みません。処理の流れは、安いチェックから順に並べてゲートを段階化していきます。重い読み込みや API 呼び出しに進む前に、軽い判定で弾けるものを弾くのが基本方針です。

ゲートの並び順を最初に決める

検証は「コストの低い順」に並べると無駄が出ません。私が運用で落ち着いた順序は次の通りです。

  1. サイズの事前確認 — バイトを1つも読まずに os.path.getsize だけで上限超過を弾く。
  2. 先頭バイトによる形式判定 — 拡張子ではなくマジックナンバーで実体を確認する。
  3. 画像の構造的サニタイズ — 展開爆弾の検知と EXIF の除去をまとめて行う。
  4. 送信方式の分岐 — 小さい画像はインライン、大きいメディアと動画は Files API。
  5. 出力のマスキングと後始末 — 戻り値の機密除去と、アップロードしたファイルの削除。

この順に並べておくと、新しい形式や制約が増えたときも「どのゲートを直すか」が迷わず決まります。

✦

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
✦拡張子を信用せず先頭バイトで形式を判定し、判定不能を既定で拒否する検証層
✦展開爆弾と EXIF 位置情報を Pillow で構造的に無害化する手順
✦Files API の状態ポーリングと使用後削除まで含めた動画処理の実装パターン
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Gemini Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

⬡ 高度な活用2026-04-23
Gemini API の Prompt Injection 対策:本番運用で必要なマルチレイヤー防御アーキテクチャ
Gemini API を本番運用するなら避けて通れない Prompt Injection 攻撃に対し、入力サニタイズ・指示強化・構造化出力・モデレーター LLM の4層防御を動くコードで設計する実戦ガイドです。
⬡ 高度な活用2026-10-14
PC では直るのに Safari でだけ画像が読み込まれない — AI に診断を頼む前に、手元で揃えておく 4 つの材料
並べ替えのあとで画像が二度と読み込まれない不具合が、iPhone の Safari でだけ起きました。PC のブラウザでは再現しない不具合を Gemini などの AI に診断してもらうとき、先に手元で揃えておく材料と、そのまま使える依頼文をまとめます。
⬡ 高度な活用2026-10-10
家計や健康の相談を履歴に残さない — Gemini の一時チャットと設定を確認する順番
家計の見直しや体調の相談を Gemini に持ちかける前に、一時チャットと「アクティビティ」設定をどの順で確かめればよいかを整理しました。残す話と残さない話を、ご自身で選べるようになるための最初の一歩です。