GEMINI LABEN
CLI — 本日6/18、Gemini CLIとGemini Code Assist IDE拡張がAI Pro/Ultra・無料個人利用向けにリクエスト提供を終了。後継はAntigravity CLIですFLASH — Gemini 3.5シリーズが始動し3.5 Flashが提供開始。エージェントとコーディング向けにフロンティア級、長時間タスクに強いと説明されていますDEEPTHINK — Gemini 3 Deep ThinkがGoogle AI Ultra向けに展開中。数学・科学・論理・多段推論の最上位モードですAPP — GeminiアプリにDaily Brief、再設計UI、AI動画モデルGemini Omni、個人AIエージェントGemini Sparkが加わりましたDESIGN — 新デザイン言語Neural Expressiveで、よりリッチな視覚出力とモダリティ間の素早い切替に向けて再構築されていますULTRA — Google AI Ultraはモデル最上位アクセス・Deep Research・Veo 3動画生成・100万トークンコンテキストを束ねるプレミアム枠ですCLI — 本日6/18、Gemini CLIとGemini Code Assist IDE拡張がAI Pro/Ultra・無料個人利用向けにリクエスト提供を終了。後継はAntigravity CLIですFLASH — Gemini 3.5シリーズが始動し3.5 Flashが提供開始。エージェントとコーディング向けにフロンティア級、長時間タスクに強いと説明されていますDEEPTHINK — Gemini 3 Deep ThinkがGoogle AI Ultra向けに展開中。数学・科学・論理・多段推論の最上位モードですAPP — GeminiアプリにDaily Brief、再設計UI、AI動画モデルGemini Omni、個人AIエージェントGemini Sparkが加わりましたDESIGN — 新デザイン言語Neural Expressiveで、よりリッチな視覚出力とモダリティ間の素早い切替に向けて再構築されていますULTRA — Google AI Ultraはモデル最上位アクセス・Deep Research・Veo 3動画生成・100万トークンコンテキストを束ねるプレミアム枠です
記事一覧/高度な活用
高度な活用/2026-06-16上級

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

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

gemini83multimodal23security8files-api3advanced11

プレミアム記事

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

個人開発でアプリに「写真をアップロードして 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-03-28
Gemini API の長期記憶とセッション永続化 — 大規模チャットボットを支える設計パターン
Gemini API で大規模チャットボットを構築する際に不可欠な、長期記憶管理・セッション永続化・トークン予算制御の設計パターンを本番環境の実装例とともに解説します。
高度な活用2026-06-14
Gemini の構造化出力を本番で信用するために — スキーマ設計・二重検証・抑制つきリトライの実装メモ
Gemini の構造化出力は「パースできるJSON」は保証しても「正しい値」までは保証しません。@google/genai での新しいスキーマ設計、propertyOrdering の効き目、Zod による二重検証、MAX_TOKENS 切れの扱い、抑制つきリトライの実装をまとめました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →