
フランス当局調査、輸入製品75%がEU規則違反。EC事業者のリスクと対策
フランスの消費者保護当局DGCCRF(競争・消費・不正抑止総局)が発表した調査で、主要オンラインプラットフォームから輸入された製品の75%がEUの基準を満たしていなかったことが明らかになった。しかも46%は違反にとどまらず危険と判定されている。越境ECに取り組む事業者にとって、これは看過できない数字だ。
2025年に7つの海外オンラインマーケットプレイスから購入した600点以上の製品を分析した結果で、調査規模は前年の3倍に拡大された。2024年の欧州市場当局による調査では、SheinやAliExpress、Temuの製品の85%から95%がEU規則に違反していた。違反率の高止まりは、個別の問題ではなく構造的な課題であることを示している。
この記事では、フランス当局の調査結果の詳細と、EC事業者が越境販売で直面するコンプライアンスリスク、そして今後の対策について解説する。
調査の概要と違反率の実態

DGCCRFが2025年に実施した調査は、7つの海外オンラインマーケットプレイスから購入した600点以上の製品を対象としている。調査規模は前年比で3倍に増加しており、欧州の規制当局が越境ECの監視を急速に強化していることがわかる。
結果は衝撃的だ。分析された製品の75%がEU規則に適合せず、さらに46%は違反かつ危険と判定された。つまり、輸入製品のおよそ2つに1つが消費者の安全を脅かす可能性があるという計算になる。EC事業者であれば、自社の取り扱い商品がこの中に含まれていないか、真剣に確認すべき段階だ。
全電気製品が違反、子供向け製品も深刻
カテゴリー別に見ると、状況はさらに深刻さを増す。ヘアケア機器などの電気製品は、テストされた全製品が違反だった。しかも約4分の3が感電や火災のリスクを理由に危険と判定されている。
子供向け製品、宝石類、衣料品でも広範な違反が見つかった。窒息リスクや過剰な化学物質含有が主な問題として指摘されている。ECサイト運営者にとって、これらのカテゴリーを扱う際のリスク管理は喫緊の課題だ。
違反がビジネスモデルの一部になっている構造的問題
DGCCRFの記者会見で、ある当局者は「違反率が70%から75%に達する場合、それはもはや例外ではなく、ビジネスモデルの一部だ」と発言したとReutersが報じている。これは単なる失敗事例ではなく、低価格と迅速な販売を優先するあまり、安全基準を軽視する商習慣が常態化しているという指摘だ。
この発言は越境ECの構造的な問題を浮き彫りにしている。規制対応にコストをかけないことが、価格競争力を生み出す仕組みになっているのだ。適切なコンプライアンス対応を行う事業者が不公平な競争にさらされている現状とも言える。
この図が示すように、安全基準の検証プロセスを組み込むかどうかで、違反リスクに大きな差が生まれる。コストはかかるが、長期的に見れば罰金や販売停止のリスクを回避する投資と考えられる。
デジタルサービス法(DSA)による制裁リスク

フランス当局は調査結果を欧州委員会と共有すると発表した。これにより、対象となったプラットフォームには、EUデジタルサービス法(Digital Services Act、以下DSA)に基づき、全世界売上高の最大6%の制裁金が科される可能性がある。
DSAは2022年に成立したEUの包括的なデジタル規制だ。オンラインプラットフォームに対して、違法・危険な製品の流通防止を義務付けており、違反した場合の罰則は極めて重い。全世界売上高の6%という数字は、大規模プラットフォームにとって数十億ユーロ規模の負担になりうる。
欧州委員会はすでにShein、Temu、AliExpressに対する調査を進めている。今回のフランスの調査結果は、これらの調査を加速させる可能性がある。EC事業者がこれらのプラットフォームを通じて販売している場合、プラットフォーム側の対応変更による影響を事前に想定しておく必要があるだろう。
プラットフォーム事業者だけの問題ではない
DSAの制裁は主にプラットフォーム運営者に向けられるが、実際に商品を供給している出品者も無関係ではない。プラットフォームが規制対応を強化すれば、違反商品の出品停止やアカウント閉鎖といった措置が増えることが予想される。
また、WooCommerceなどを使って自社ECサイトを運営している事業者の場合、直接的にDSAの規制対象となるケースもある。EU域内向けに販売しているなら、プラットフォームの有無にかかわらず、製品安全規則の遵守は必須だ。
WooCommerce事業者が今すぐ取るべき対策

越境ECに取り組むWooCommerce事業者にとって、今回の調査結果は対岸の火事ではない。EU市場で継続的に販売するために、以下の対策を段階的に実施することを推奨する。
これらのステップは一見すると手間に感じるかもしれない。しかし、罰金や販売停止措置を受けた場合の損失に比べれば、予防的な投資として十分に割に合うはずだ。
WooCommerceの機能を活用したコンプライアンス表示
WooCommerceでは、商品ページに追加情報タブを設けたり、カスタムフィールドを使って認証情報を表示したりできる。たとえば、CEマーキングの画像や適合宣言書へのリンクを商品ページに組み込めば、消費者の信頼獲得にもつながる。
また、WooCommerceの出荷先制限機能を使い、EU域内への配送時にのみ警告文を表示するといった柔軟な対応も可能だ。越境ECを本格化させる前に、こうした細かな設定を見直す価値は大きい。
越境ECのコンプライアンス、待ったなしの状況

フランス当局の調査が示したのは、越境ECにおける製品安全規制の執行が本格化しているという現実だ。2024年の調査で85%から95%、2025年調査で75%という高い違反率が継続していることから、規制当局の目は今後さらに厳しくなると見て間違いない。
DGCCRFの当局者が述べた「もはや例外ではなくビジネスモデルの一部」という言葉は重い。低価格を武器にする越境ECのビジネスモデルそのものが、規制の網にかかりつつある。早い段階でコンプライアンス体制を整えた事業者が、長期的に生き残る可能性が高いと言えるだろう。
WooCommerce事業者は、小規模だから規制の対象外とは考えないほうがいい。EUの消費者保護法制は事業規模を問わず適用される。自社の取り扱い商品カテゴリーに応じたリスク評価と、サプライチェーンの見直しを今すぐ始めることを強く推奨する。
この記事のポイント
- フランス当局の調査で輸入製品の75%がEU規則違反、46%は危険と判定された
- 電気製品は全品が違反、子供向け製品でも窒息リスクや化学物質の問題が深刻化している
- デジタルサービス法(DSA)に基づき、プラットフォームに全世界売上高の最大6%の制裁金が科される可能性がある
- WooCommerce事業者はサプライヤー調査、第三者試験、商品ページでの認証表示を段階的に実施すべきだ
- 越境ECのコンプライアンス対応は待ったなし、早期対策が長期的な競争力につながる

2026年Web運用を変えるAIエージェント10選
Webの制作と運用は、静的なページ編集から「アクションウェブ」の時代へと完全に移行した。AIはもはやテキストを下書きするだけではない。状況を理解し、コードを生成し、テストを経て本番環境へ自らデプロイする。エージェンティックAIは、Web制作の現場における実装プロセスそのものを大きく変えつつある。
自律型AIエージェントの市場規模は、年平均44.8%の成長率で拡大し、2030年までに471億ドルに達すると予測されている。Gartnerのレポートによれば、2026年末までに企業アプリケーションの40%が何らかの会話型AIエージェントを内蔵する見込みだ。Web制作者は、手動のコード編集やZapierのルール設定に終止符を打ち、自律的に動くシステムを活用するスキルが求められている。
本記事では、2026年時点で注目すべきエージェンティックAIツールを10本厳選した。WordPressの管理画面に統合されネイティブに動作するプラグインから、大企業向けの高精度な対話型エンジン、ブラウザ操作やデータ収集を自動化するツールまでを機能別に解説する。自社のWebサイトに最もフィットするエージェントを選ぶための指針にしてほしい。
上図のように、AIエージェントは人の手を介さず「計画 → 実行 → 検証 → リリース」のサイクルを自律的に回す。これにより、Webサイトの更新速度は劇的に向上する。
WordPress制作を高速化するAngie by Elementor

Elementorが提供する無料プラグイン「Angie」は、WordPressのダッシュボード内で動作する自律型の開発エージェントだ。従来のAIコーディングアシスタントとは異なり、サイトで有効化されているテーマやプラグインの情報をMCP(モデルコンテキストプロトコル)経由で自動的に取得する。Angieは、ただのコードスニペットを返すのではなく、実際のWordPressアセットを生成して本番に近い環境でテストする。
この仕組みが大きな安心感を生む。ユーザーは自然言語で要望を入力するだけで、Angieがカスタムウィジェットや管理画面用スニペット、カスタム投稿タイプを作成し、隔離されたサンドボックス内で動作を確認する。問題がなければ、ワンクリックで本番サイトに反映される。Elementor Editor Proとの連携時には、世界で2,100万サイト(インターネット全体の約13%)を支えるエコシステムの力をダイレクトに引き出せる。
主な機能と利点
- コンテキスト認識型の実行により、テーマやプラグインとの競合を回避
- サンドボックス環境でカスタムコードを事前検証し、本番サイトへの影響をシャットアウト
- 自然言語から直接、カスタム投稿タイプや管理画面スニペットなどのWordPressアセットを生成
- ビジュアルなフロントエンドインターフェースもテキスト指示で構築可能
- すべての変更はユーザーが承認してから適用されるため、完全なコントロールを維持
料金と評価
Angieは完全無料のWordPressプラグインだ。Elementor Oneとの組み合わせでプロ仕様の体験になるが、単体でも十分に機能する。WordPressの複雑なアーキテクチャをネイティブに理解する専用ツールとして、手動コーディングから解放された開発者や制作会社から高い評価を得ている。
カスタマーサポートを自動化する対話エージェント群

Webサイトの問い合わせ対応は、エージェンティックAIの実力を最も早く体感できる領域だ。高性能な対話エージェントは、FAQのトリアージを超えて、実際の業務処理まで自律的に動く。
Intercom Fin
Intercom Finは、知識ベースを読み取って自律的に回答するサポートエージェントだ。2021年型のチャットボットのように分岐ツリーを使うのではなく、ユーザーの意図を推論し、必要な情報とアクションを組み合わせる。Finはカスタマーサポートチケットの50%を人間の介入なしに解決し、1件あたり0.99ドルという成果報酬型の課金モデルを採用する。
- 既存のヘルプセンターやNotionドキュメントを読み込ませるだけで稼働開始
- 払い戻しなどの業務プロセスもAPI連携で自動実行可能
- 複雑な案件は会話履歴を添えて人間スタッフに引き継ぐ
- 対応チャネルはWebチャット、WhatsApp、メールに対応
大量の問い合わせを抱えるECサイトやSaaS事業者にとって、Finは人手による対応コストを大幅に削減する即戦力になる。
Sierra
Fortune 500企業のようなブランドイメージが優先される現場では、Sierraが選ばれる。元SalesforceのBret Taylor氏が設立したこのプラットフォームは、誤回答(ハルシネーション)を許容できない環境向けに設計されており、高度な安全性と論理推論を兼ね備える。Sierraはバックエンドの在庫データベースや配送システムに深く統合し、商品の交換やサブスクリプションのダウングレードといったトランザクション処理を自律的に行う。ただし、導入には数週間のエンジニアリング作業とエンタープライズ価格が必要で、中小企業には過剰な装備といえる。
マルチエージェントでワークフローを自動化

単一のAIに任せるのではなく、調査・執筆・編集といった複数の専門エージェントをチームとして動かすアプローチが広がっている。これにより、Webサイトのコンテンツ運用やデータ処理のスピードは非連続的に向上する。
Relevance AI
Relevance AIは、マルチエージェントのオーケストレーションに特化したプラットフォームだ。ビジュアルなビルダーでエージェントをドラッグ&ドロップし、競合サイトの価格変動を抽出する担当、比較ページを執筆する担当、HTML整形を担当するチームを構築できる。エージェント同士の連携により、反復作業にかかる時間を平均60%削減した事例も報告されており、デジタルエージェンシーや高頻度でコンテンツを更新するパブリッシャーに適している。料金はチームプランで月額199ドルから。
Zapier Central
Zapier Centralは、6,000を超える外部アプリとの連携にAIの判断力を加えたハブだ。従来のif-thenルールではなく、会話形式で「今日のWeb経由リードを企業規模でスコアリングし、上位3件をSlackで営業チームに通知して」といった複合指示を解釈し、複数アプリをまたいだ自律的なワークフローを実行する。タスクの実行速度は1ステップあたり2秒未満と高速で、すでにZapierのエコシステムを活用しているチームに大きなアドバンテージをもたらす。
ブラウザ操作を自律化するツール

APIが提供されていない外部サイトとの連携は、これまで手作業によるデータ収集やフォーム入力に頼らざるを得なかった。エージェンティックなブラウザ操作ツールは、この壁を取り払う。
MultiOn
MultiOnは、ヘッドレスブラウザをインテリジェントに制御するAPIだ。APIが用意されていない旅行予約サイトでも、MultiOnは画面を視覚的に解析し、「2名でレストランを予約して」といった指示に対して、ボタンのクリックやフォーム入力を自律的に実行する。複雑なマルチステップのフォームでも成功率は90%以上を維持しており、対象サイトのUIが一部変更されても自己修復する。ブラウザベースの処理速度はAPI呼び出しに比べると遅いが、クローズドなWebサービスと連携したいシステムにとって強力な選択肢だ。
Bardeen
BardeenはChrome拡張機能として動作し、ユーザーが現在閲覧しているページのコンテキストを読み取って自動化を提案する。競合サイトのブログ記事一覧をスクレイピングし、要約をコンテンツ計画スプレッドシートに書き込むといった作業をワンクリックで実行できる。月額10ドルからのプロフェッショナルプランで利用でき、ブラウザがアクティブな間だけ動作するため、常時稼働のサーバーエージェントとは異なるが、マーケティングチームのリサーチ負荷を大きく下げる。
コード生成に特化した開発者向けエージェントCursor

カスタムWebアプリケーションの開発において、Cursorは純粋なコード生成の最高峰だ。VS Codeをフォークしたこのエディタは、エージェントAIを深く統合し、単一行の補完ではなくプロジェクト全体を横断するリファクタリングを実行する。Composer機能を使えば、「認証フローを新しいAPI構造に合わせて全面的に書き直して」という指示で、複数のファイルにまたがる変更を計画し、コードを生成する。React、Vue、Node.js、Pythonなど幅広いスタックに対応し、月額20ドルのProプランで強力なモデルを利用できる。ただし、CMSの内部構造に依存するWordPress環境では、Angieのようなネイティブツールを併用する方が効率的だ。
デザイン自動生成のFramer AI

ビジュアル面でのエージェンティックAIとして、Framer AIはプロンプトからレスポンシブなWebサイトのレイアウト、カラーパレット、コピーを一括生成する。CSSグリッドやブレークポイントを自動で処理し、マイクロアニメーションもあらかじめ組み込まれるため、短時間で高品質なランディングページを作成したい場面に適している。ただし、Framerはクローズドなホスティング環境であり、生成したコードの外部エクスポートは容易ではない。静的なマーケティングサイトの高速プロトタイピングには最適だが、複雑な動的機能を後から追加する場合には別のオープンなプラットフォームへの移行が必要になる。
この記事のポイント
- エージェンティックAIは、コード提案にとどまらず、実装・テスト・デプロイまでを自律実行する
- WordPressサイトにはAngieが最も整合性が高く、無料でサンドボックス検証まで行える
- カスタマーサポートにはIntercom Finが有効で、チケットの50%を自動解決する
- マルチエージェントを組めば、コンテンツ更新やデータ処理の反復作業を最大60%削減できる
- API非公開の外部サイトとの連携には、MultiOnやBardeenのようなブラウザ操作エージェントが有効

TemuとSheinの規制違反が生む不公平競争、ドイツ経済損失は年間24億ユーロ
調査結果が示す消費者心理は、価格だけでは説明できない。規制の有無によるコスト差がプラットフォーム間の構造的な優位性を生み、国内事業者の足を引っ張っているのが実態だ。
規制コンプライアンスの格差が生む不公正

TemuとSheinが批判される核心は、製品の安全性や環境規制への対応不足にある。EU市場で販売される商品には、CEマーキングやREACH規則、包装廃棄物指令など、消費者と環境を守るための厳格なルールが適用される。国内事業者はこれらの順守に多大なコストを割いている。
HDEの調査によれば、ドイツのオンライン販売事業者の90%が「規制対応の負担が重い、あるいは非常に重い」と感じている。一方、TemuやSheinはこのコストを回避、あるいは軽視することで圧倒的な価格競争力を実現している。同額の製品でも、国内事業者は安全試験やリサイクル登録、適切な表示義務に対応しなければ販売できない。
EU域外から直接消費者に届く小口貨物は税関の検査が追いつかず、規制違反が見過ごされるケースが後を絶たない。フランスでは最近実施された抜き打ち検査で、輸入された商品の最大75%がEU基準を満たしていなかったと報告されている。
ここで問題なのは、自由競争そのものではない。競争は市場の活力だが、同じ土俵に立っていなければ公正な競争とは呼べない。規制対応に真面目に取り組む事業者ほど不利になる構造は、経済全体の歪みを拡大させる。
雇用喪失は小売業だけで2万8300人

HDEの発表によると、TemuとSheinの台頭によってドイツ国内で4万件以上の雇用が失われた計算になる。このうち小売業だけでも2万8300人にのぼる。
ドイツ経済研究所のエコノミスト、Marco Trenz氏はheise onlineの取材に対し、「TemuとSheinが存在しなければ、購入の大部分はドイツの小売店で行われていた。その場合、より多くの従業員が必要になる」と説明している。毎日ドイツ国内に配送される46万個の小包の多くが、本来は国内店舗のレジを通っていたかもしれない需要だ。
雇用の喪失は単に職を失うという直接的なダメージだけでなく、地域経済の活力を奪う。実店舗は賃料を支払い、地域のサービス業を利用し、人を雇うことで街の経済を循環させる。EC事業者であっても、国内に拠点を置く事業者はこうした循環の一部だ。対して、越境プラットフォームの物流拠点や雇用は主に中国国内にあり、ドイツ国内への波及効果は極めて薄い。
1日に46万個の小包が届くという数字は、消費者に支持されている証拠でもある。だが、その支持の背景に規制回避による価格優位性があるならば、政策対応を検討しなければ小売業の雇用はさらに縮小するだろう。
税収でも年間4.2億ユーロの逸失

雇用だけでなく、税収面でも影響は深刻だ。調査では、連邦・州・地方自治体を合わせて年間約4億2000万ユーロの税収が失われていると推計されている。Trenz氏は「TemuやSheinではなく、ドイツの実店舗で購入されていれば、所得税、営業税、法人税も支払われていただろう」と指摘する。
越境ECの税制上のグレーゾーンは、以前から指摘されてきた。EUは2021年にVAT(付加価値税)の電子商取引ルールを改正し、域外事業者にも課税を義務付ける仕組みを導入した。だが実効性は限定的で、低価格を前面に出すプラットフォームでは、適正な関税や付加価値税が申告されないケースが後を絶たない。
事業者が国内で得た利益から納める法人税や営業税は、そもそも域外事業者にはほとんど期待できない。国内事業者は売上の一定割合をこうした税として納め、さらに従業員の源泉所得税も負担する。この税負担の非対称性が、価格競争に直接影響している。
税収の逸失は道路や教育、医療といった公共サービスに跳ね返る。最終的に不利益を被るのは、消費者でもあるドイツ国民自身だ。
業界団体が求める政策対応と今後の展望

HDEのAlexander von Preen会長は声明で次のように述べたと報じられている。「現在のデータは事態の深刻さを明確に示している。TemuとSheinによる大規模な規制違反は、小売業とドイツ経済全体に甚大な損害を与えている。政策立案者が長年の不作為の後に、ついに断固とした具体的な行動を取らなければ、ドイツのビジネス立地としての未来は暗い。どうしても効果がないなら、このような大規模な違反は停止されるべきだ。競争は良いものだが、公正でなければならない」
HDEは税関に対して取り締まり圧力の強化を求めている。具体的には、フランスですでに実施された輸入小包への的を絞った検査の強化をモデルとして挙げている。
EC事業者にとって、この問題は対岸の火事ではない。公正な競争環境が損なわれれば、規制を順守する事業者ほど不利になるという構造は、日本を含むあらゆる市場で再現される可能性がある。WooCommerceで構築した自社ECサイトを運営する事業者も、価格競争だけでなく、商品の安全性や環境対応といった「信頼の可視化」で差別化することが、これまで以上に重要になる。
この記事のポイント
- TemuとSheinの不公正競争により、ドイツ経済に年間24億ユーロの付加価値損失が発生している
- 国内小売事業者の90%が規制対応に重い負担を感じる中、越境プラットフォームは規制コストを回避し価格競争力を獲得している
- 小売業で2万8300人を含む計4万件以上の雇用喪失と、4.2億ユーロの税収逸失が推計されている
- HDEはフランス型の税関抜き打ち検査強化を求め、公正な競争環境の回復を訴えている

git push操作でサーバー制御可能なRCE脆弱性 GitHubが2時間で修正完了
2026年3月4日、GitHubはバグ報奨金プログラムを通じて極めて深刻な脆弱性の報告を受けた。対象はgit push 操作のパイプラインであり、悪用されるとGitHubのサーバー上で任意のコマンドを実行される可能性があった。GitHubは報告から2時間以内に修正を展開し、その後の調査で実際の悪用は一切なかったと結論づけている。
この脆弱性は、git push に付与できる --push-option で送った文字列が、サーバー内部で適切にサニタイズされずにメタデータへ挿入されることに起因する。攻撃者は細工したオプションを与えるだけで、本来信頼される内部フィールドを偽装し、サンドボックスを回避してコードを実行できた。
本記事では報告の経緯、脆弱性の仕組み、GitHubの対応と調査結果、そして多層防御の重要性について詳しく解説する。自社運用のGitHub Enterprise Serverを管理するエンジニアは、早急なアップデートが推奨されるため、最後の対応ポイントまで確認してほしい。
バグ報奨金プログラムからの報告と即時対応

2026年3月4日、クラウドセキュリティ企業Wizの研究者らがGitHubのバグ報奨金プログラムにリモートコード実行(RCE)の脆弱性を報告した。この脆弱性は github.com だけでなく、GitHub Enterprise Cloud(データレジデンシーやEnterprise Managed Usersを含む)および GitHub Enterprise Server にも影響するものだった。
報告によれば、リポジトリへのプッシュ権限を持つユーザー(自身で作成したリポジトリを含む)であれば誰でも、単一の git push コマンドでサーバー上での任意コマンド実行が可能だった。攻撃に必要なのは、プッシュ時に指定する --push-option に細工した値を仕込むだけである。
検証から修正までのスピード
GitHubのセキュリティチームは報告を受け取ると直ちに検証を開始した。約40分で社内環境での再現に成功し、重大度を確認。その時点でUTC 17時45分、根本原因の特定と修正パッチの作成が始まった。そして同日19時(UTC)には github.com への修正展開が完了した。報告からわずか2時間弱での出来事だ。
この迅速な対応を可能にしたのは、詳細な再現手順と影響範囲が報告の段階で明確に示されていたことにある。Wizの研究者はプッシュオプションを経由したメタデータ汚染から環境偽装、サンドボックス回避に至る一連の攻撃チェーンを完全に解明していた。
脆弱性の仕組み git push オプションから任意コード実行まで

ここでは攻撃手法の技術的な流れを整理する。核となるのは、GitHubの内部サービス間でプッシュメタデータをやり取りする際に使われる区切り文字と、ユーザー入力の不適切な扱いだ。
プッシュオプションが処理される流れ
git push には --push-option(または -o)というオプションがある。これはクライアントがサーバーに対してキーバリューペアの文字列を追加で送るための正当なGit機能だ。CI/CDパイプラインへのパラメータ渡しなどで利用される。
しかしGitHub内部では、このユーザー提供の値がそのままの形で内部プロトコルのメタデータに埋め込まれていた。メタデータには「リポジトリ種別」や「処理環境」などを指定するフィールドが含まれており、各フィールドは特定の区切り文字で分割される。
サニタイズ不足が引き起こす注入攻撃
問題は、この内部区切り文字として使われていた文字が、ユーザー入力にも含まれ得る点だった。攻撃者はプッシュオプションの値に区切り文字を混入させることで、メタデータを意図的に「延長」または「上書き」できた。
より具体的には、プッシュオプションに key=value;injected_field=malicious のような文字列を指定する。内部サービスはこの文字列を単一の値として扱うが、後段のサービスがメタデータをパースする際に、区切り文字 ; で新たなフィールドとして解釈してしまう。こうして下流のサービスは、攻撃者が注入したフィールドを「信頼された内部値」として処理する。
研究者はこの仕組みを連鎖的に利用し、プッシュが処理される環境を上書きし、通常は有効なサンドボックス制限を無効化した。最終的にサーバー上で任意のコマンドを実行するコードパスに到達する。
; が含まれ、内部フィールドを偽装■ 修正後:ユーザー入力がサニタイズされ、注入不可に
上図のように、ユーザーが指定したプッシュオプションが内部の区切り文字を経由してメタデータを汚染していた。修正後はサニタイズ処理が追加され、攻撃者が意図的にフィールドを延長できなくなっている。
脆弱性への修正と悪用調査

github.com への緊急修正
2026年3月4日19時(UTC)、GitHubは github.com に修正を展開した。この修正により、プッシュオプションの値が内部メタデータのフィールド区切り文字を含まないよう適切にエスケープされる。以後、ユーザー入力が信頼された内部フィールドを上書きすることは不可能になった。
GitHub Enterprise Server 向けパッチとCVE
セルフホスト型の GitHub Enterprise Server (GHES) についても、同日中に全サポートバージョン向けのパッチが準備された。具体的には以下のリリース以降で修正が適用されている。
- GHES 3.14.25 以降
- GHES 3.15.20 以降
- GHES 3.16.16 以降
- GHES 3.17.13 以降
- GHES 3.18.7 以降
- GHES 3.19.4 以降
- GHES 3.20.0 以降
この脆弱性には CVE-2026-3854 が割り当てられている。公開されたCVE情報は以下の通りだ。
- CVE番号: CVE-2026-3854
- 深刻度: Critical(緊急)
- 影響範囲: 認証済みかつプッシュ権限を持つユーザーによるリモートコード実行
GitHubのCISOであるAlexis Wales氏は公式ブログで、GHESの全管理者に対し「直ちに最新のパッチリリースへアップグレードすることを強く推奨する」と呼びかけている。
悪用の有無を徹底調査
修正と並行して、GitHubは不正利用の痕跡がないかフォレンジック調査を開始した。この脆弱性には調査を容易にする特異な性質があった。悪用が成功した場合、サーバーは通常運用では決して通過しない特異なコードパスを必ず実行する。攻撃者がこれを回避することは構造上不可能である。
GitHubのエンジニアはこのコードパスにログ出力を仕込み、全テレメトリデータを解析した。その結果、以下の事実が確認された。
- 該当コードパスが実行されたすべてのインスタンスは、Wizの研究者自身の検証作業と完全に一致した。
- 他のユーザーやアカウントによる同コードパスの実行は一度も観測されなかった。
- 顧客データへのアクセス、改ざん、持ち出しは一切発生しなかった。
これにより、github.com 上のリポジトリに対する実際の攻撃は一切なかったと結論づけられた。GHES環境についても、攻撃が成立するにはインスタンス上でプッシュ権限を持つ認証済みユーザーが必要であり、念のため /var/log/github-audit.log を確認し、プッシュオプションに ; を含む不審なログがないか点検することが推奨されている。
多層防御が生んだ追加の発見

今回のインシデント対応の中で、インプットサニタイズの修正に加えて、防衛の階層化に関わるもう一つの重要な知見が得られた。攻撃が成立した理由の一部は、サーバー上に「その環境では本来不要なはずのコードパス」が存在していたことにある。
具体的には、コンテナイメージのディスク上に、異なる製品構成でのみ使われる想定のコードが含まれていた。過去のデプロイ手法ではこのコードが正しく除外されていたが、デプロイモデルの変更時にその除外ルールが引き継がれなかったのだ。
GitHubはこの不要なコードパスを、当該環境から完全に削除した。たとえ将来同種の注入脆弱性が発見されたとしても、攻撃者の行動範囲を大幅に制限できるようになっている。
このケースは、多層防御(Defense in Depth)が単なる標語ではないことを改めて示している。入力検証という第一の防衛線だけでなく、不必要なコンポーネントの除去という第二の防衛線が被害の拡大を防ぐ鍵になる。
ユーザーが今すぐ取るべき対応

GitHub.com および GitHub Enterprise Cloud ユーザー
github.com、GitHub Enterprise Cloud(Enterprise Managed UsersやData Residencyを含む)の環境は、2026年3月4日の時点で修正済みだ。これらのサービスを利用しているユーザー側での特別な対応は不要である。
GitHub Enterprise Server 管理者
セルフホスト環境では、先述のパッチバージョンへのアップグレードが不可欠だ。さらに、念のため監査ログを確認しておくとよい。具体的には /var/log/github-audit.log を対象に、プッシュオプションにセミコロン(;)を含むプッシュ操作が記録されていないか調査する。
攻撃の成立には認証済みのプッシュ権限が必要なため、内部不正やアカウント乗っ取りのリスクも考慮し、不審なアクティビティがないか定期的に確認することが望ましい。
この記事のポイント
- git push に付与する –push-option のサニタイズ不足が、内部メタデータへのフィールド注入を許しリモートコード実行に繋がった
- GitHubは報告から2時間以内に修正を展開し、サーバーログの解析で悪用の形跡がないことを確認した
- GitHub Enterprise Server 環境では、指定のパッチバージョンへの即時アップグレードが強く推奨される
- 入力サニタイズに加え、不要なコードパスを除去する多層防御の重要性が改めて浮き彫りになった

Beaver Builder共同創業者が語る、AI時代のページビルダーとWeb制作のリアル
Beaver Builderは、今年でリリースから12年目を迎えるWordPress用ページビルダーだ。その共同創業者であるRobby McCullough氏が、WP Tavernのポッドキャスト「Jukebox」に出演した。 McCullough氏は、昨今のAIブームに最初から飛びつかなかった理由と、その静観期間を経て見えてきた「真に使えるAI」の形について語っている。
AIがコードを生成してWebサイトを構築する時代に、ドラッグ&ドロップでページを組み立てるツールには意味があるのか。McCullough氏の見解からは、編集や保守といった「作った後」の工程こそが、これからの差別化要因になるという示唆が得られる。Web制作の現場で起きている地殻変動と、そこに適応しようとするプロダクト開発の内側を見ていく。
ページビルダーがもたらした制作ハードルの低下

Beaver Builderは2010年代前半、WordPressで本格的なWebサイトを作るにはHTMLやCSS、PHPの知識が必須だった時代に登場した。 McCullough氏は、番組ホストのNathan Wrigley氏との会話で「ページビルダーは、技術に詳しくないクライアントが自分でコンテンツを更新できる仕組みを作りたくて開発した」と振り返っている。
ノーコードの先駆けと「職人芸」の摩擦
登場当初、ページビルダーには強力な逆風があった。「本来のWordPressの作法ではない」という批判だ。 McCullough氏は最初に参加したWordCampで、「自分はテーマに直接コードを書ける。ページビルダーは不要だ」と言われた経験を明かしている。
この構図は現在の生成AIに対する反発とよく似ている。新しいツールが既存の「正しい」手法を置き換えるとき、必ず「職人芸」の喪失を惜しむ声が上がる。しかし、結果としてページビルダーはWordPressの市場シェアが40%を超える原動力のひとつになったと広く認識されている。
Gutenberg登場で一度は消えたかと思われた市場
その後、WordPress 5.0でブロックエディタ「Gutenberg」がコアに統合された。このときも「ページビルダーは不要になる」という予測が飛び交った。 McCullough氏は「もう数えきれないほど、『1年以内にページビルダーは終わる』と言われてきた」と笑う。 しかし、ビジュアル編集への需要はむしろ多様化し、Beaver Builderのような専用ツールは独自のポジションを保ち続けている。
上の比較図は、制作フローがどのように変化したかを示している。技術的負荷が下がったことで、Webサイト制作の主役は開発者から運用者へと広がった。
AIブームに飛びつかなかった戦略的判断

2023年から2024年にかけて、多くのSaaS企業がChatGPTのAPIをラップしただけの機能を「AI搭載」と謳い始めた。 McCullough氏はこの動きを「AIハイプ・トレイン」と呼び、Beaver Builderはそれに乗らなかったと明言している。 経営陣や株主向けに「AI対応」と謳う必要に迫られる大手とは異なり、自分たちにはそのプレッシャーがなかったからだ。
本質はAIラベルではなく「エージェント化」にある
McCullough氏が今、強い関心を寄せているのは、単なるテキスト生成ではない。 開発環境に深く組み込まれ、コードを理解して自律的にタスクを遂行する「エージェント型AI」だ。 彼はこの半年足らずで、会話だけで10以上のWebサイトを試作した経験を語っている。 「以前なら数週間かかっていた作業が瞬時に終わる」興奮がある一方で、これがWeb制作のプロセスを大きく変えると確信している。
静観期間がもたらした「待ち」のメリット
最初のブームで実装を見送ったことで、Beaver Builderは二つの利点を得た。 ひとつは、技術の成熟を待てたこと。 もうひとつは、ユーザーが本当に必要とするAI体験を設計する余裕が生まれたことだ。 McCullough氏は「最初の波に乗って見せかけのAI機能を追加していたら、今ごろ陳腐化していただろう」と振り返る。
この図は、AIの「見せかけ」と「本質」の違いを時系列で示している。ビジネス視点では、後者の波に合わせてプロダクトを進化させることが競争力を左右する。
AI時代にこそ浮かび上がる「編集」と「保守」の価値

McCullough氏は、AIによるサイト構築が普及しても、ビジュアル編集ツールの役割はむしろ重要性を増すと見ている。その理由は「作った後」にこそ本当の手間がかかるからだ。
プロンプト一発で終わらないWebサイト運用
ポッドキャストの中でWrigley氏は、AIが生成したランディングページを「クリスマス仕様に一部だけ変更する」ような場面を想定した。 こうした部分的な更新は、新しいプロンプトで一から再生成するより、視覚的な編集画面で該当箇所を直接操作するほうが圧倒的に効率が良い。 McCullough氏も「AIがサイトを作り、人間が編集する」という分業モデルに強く共感している。
Beaver Builderが目指す「AIファースト編集」
開発チームは現在、二つのアプローチでAI統合を実験中だ。 一つ目は、ローカルで生成したHTMLページをドラッグ&ドロップでBeaver Builderに取り込む機能。 二つ目は、編集中のセクション(たとえば価格表)に対してチャットで修正を依頼できるエージェント型ツールだ。 McCullough氏は「まだ実験段階」と前置きしつつも、これらの機能がプロダクトの将来像を大きく変える可能性を示唆した。
このフロー図は、AIとページビルダーが対立するのではなく、補完し合う関係になることを示している。 McCullough氏は「コードもマークアップも、将来のバージョンではより表に出していく」と述べており、開発者がAIの出力結果を直接確認・調整できる透明性を重視する姿勢だ。
変化の加速が生むビジネス上の不安と楽観

AIの進化は、プロダクトビジネスにただならぬプレッシャーをもたらす。 McCullough氏も例外ではない。 しかし彼は「根拠のない楽観主義」こそが12年間生き残れた理由だと語る。
過去にもあった「消滅予測」
ページビルダー業界は過去に何度も「終わった」と言われてきた。 Gutenbergの登場時しかり、AIの登場時しかり。 しかし、WordPressサイトの圧倒的な数が一夜にして別のプラットフォームに移行することは現実的ではない。 McCullough氏は「2126年になってもWordPressはどこかで動いているだろう」とジョークを交えつつ、当面はレガシーサイトの保守需要が膨大に残ると指摘する。
新しいツールを学び直す機会として捉える
注目すべきは、McCullough氏自身がエージェント型AIを使う中で、最新のCSSやフレックスボックス、グリッドレイアウトの知識を再習得しているという点だ。 「AIが書いたコードを見て、自分の手でいじる。それが最高の学習体験になっている」と彼は言う。 ツールに使われるのではなく、ツールから学ぶという姿勢が、変化の波を乗りこなす鍵なのかもしれない。
「人間らしさ」とコミュニティへの回帰

技術の話に終始するかと思われた対談は、終盤にかけて「人間同士のつながり」へと焦点を移した。 ここには、AI時代を生きるプロダクト開発者としての本音がにじむ。
AIエージェントとの対話で失われるもの
McCullough氏は、チャットAIがあまりにも有能で、「人と共同作業をしている感覚」を模倣してしまうことに懸念を示した。 在宅勤務で一人きりになる時間が長いと、つい人間よりAIに話しかける頻度が増える。 「このままだと、本当に人とコラボレーションする機会を失ってしまう」という危機感は、技術者としてだけでなく、ひとりの父親としての実感でもある。
WordCampと地域コミュニティの再興を望む声
対談の最後で、McCullough氏はWordPressのオフラインイベントの衰退を惜しんだ。 世界中のWordCampで顔を合わせ、初めて会う相手と食事や飲みに行く体験は、仕事の枠を超えた財産だった。 彼は「AIが進化すればするほど、ああいう場が恋しくなる」と述べ、テクノロジーが人を遠ざけるのではなく、人と人を結びつける方向に使われることを願っている。
この記事のポイント
- Beaver Builderは初期AIブームに乗らず、技術の成熟を待つ戦略を選んだ。その結果、エージェント型AIという本質的な波に集中できている
- AIがサイトを一瞬で作れるようになっても、部分的な編集や保守にはビジュアルツールが不可欠だ。制作より「編集」の時代へ移行しつつある
- McCullough氏はAIを「学習手段」としても評価しており、生成されたコードを自ら触ることで新しいCSS技術を習得している
- AIの進化はビジネスに不安をもたらすが、WordPressの圧倒的な普及率がしばらくの間はレガシーサイトの保守需要を支え続ける
- 便利なAIとの対話が増えるほど、人とのリアルな共同作業やWordCampのようなコミュニティの価値が再認識されている

EU消費者向けEC事業者必見、2026年6月から撤回リンクが必須に
EU(欧州連合)域内の消費者を対象に商品やサービスをオンライン販売するすべてのB2C事業者に対し、2026年6月19日までに「契約撤回」機能の設置が義務付けられる。これは、新たなEU指令2023/2673に基づくものだ。WooCommerceで運営している事業者であれば、必要な機能のほとんどは既に備わっていると考えてよい。
今回の指令は、これまで存在していた消費者の「14日間の撤回権」の行使方法を、より具体的かつ利用しやすい形に改めるものだ。事業者は、購入時と同じくらい簡単に契約を解除できる導線を、Webサイト上に確保しなければならない。その内容と実装のポイントをまとめた。
WooCommerce Blogの記事を基に、変更点の概要と具体的な対応ステップを詳しく見ていく。
2026年6月、何が変わるのか

EUでは従来から、指令2011/83に基づき、消費者は契約から14日間以内であれば理由を問わずに契約を撤回できる「クーリングオフ」の権利が認められてきた。今回の指令2023/2673は、この権利を「どのように行使できるようにするか」を具体的に規定し直したものだ。
つまり、オンラインで簡単に契約(購入)できるようにしているなら、同じくらい簡単にオンラインで撤回(解約・返品)できるようにしなければならない、という考え方である。この「対称性」が、今回の改正の中核にある。
事業者に求められる具体的な対応
新しい指令の中核は、サイト上に「契約撤回」のための機能を、目立つ形で常時利用可能な状態にしておくことだ。具体的には、以下のような要素が求められる。
- 常に目に付きやすい場所に「契約を撤回する」ためのボタンまたはリンクを設置する
- そのリンク先では、消費者が誰のどの契約を撤回したいのかを簡単に伝えられる入力フォームを用意する
- 撤回の申し出があったら、事業者側は速やかに確認メールを自動送信する
- 申し出を受けた後の実際の返金・返品処理は、既存の業務フローに沿って行う
ここで注意すべきは、「契約撤回」の権利そのものは以前から存在していたという点だ。今回の変更はあくまで「権利の行使方法」に関するものであり、返品や返金のポリシーそのものを根本から変える必要があるわけではない。
14日間の撤回期間中は機能を維持する
この撤回機能は、消費者が商品を受け取った日、またはサービス契約を結んだ日から14日間、継続的に提供しなければならない。期間が過ぎたら自動的に機能を停止する必要はないが、少なくとも14日間は確実に利用できる状態にしておくことが求められる。
したがって、特定のキャンペーン期間中だけ表示するといった制御は避け、サイト上に恒常的に設置しておくのが無難だ。
WooCommerceを使った実装ステップ

新指令に対応するための技術的なハードルは、それほど高くない。特にWooCommerceを利用している場合、基本的な機能の多くは既にコア機能やプラグインでカバーできる。WooCommerce Blogの記事では、以下の4ステップが推奨されている。
ステップ1:サイトに「契約撤回」リンクを設置する
まず、サイトのフッターやメインナビゲーションなど、訪問者が迷わずに見つけられる位置にリンクを追加する。EU指令では「ここから契約を撤回する」といった趣旨の、機能が明確に分かるラベル表記が求められている。
特殊な装飾ボタンである必要はなく、テキストリンクでも問題ない。しかし、他の利用規約系リンクに埋もれてしまわないよう、視認性には配慮が必要だ。具体的なラベル例としては「契約の撤回はこちら(Withdraw from contract here)」「注文のキャンセルと返品」などが考えられる。
ステップ2:撤回リクエスト用のフォームを作成する
リンク先のページには、消費者が以下の情報を提供または確認できるフォームを設置する。
- 氏名
- 注文番号または契約参照番号
- メールアドレス
フォーム作成には、Contact Form 7やWPForms、Gravity Formsなど、WordPressで広く使われているコンタクトフォームプラグインで十分対応できる。独自のカスタム開発は必須ではない。むしろ、既存のフォームに「お問い合わせ種別:契約撤回」という項目を追加するだけでも、最低限の実装としては成立するだろう。
フォーム設計で気を付けるべきは、顧客が入力に迷わないシンプルさだ。注文番号が分からないケースも想定し、注文時に使用したメールアドレスと氏名だけでもリクエストを受理できるようにしておくと、顧客体験として優れたものになる。
ステップ3:確認メールの自動送信を設定する
消費者から撤回リクエストが送信されたら、それを受け取ったことを証明する確認メールを自動で返信する必要がある。これは、後日の「言った言わない」のトラブルを防ぐための重要なステップだ。
多くのフォームプラグインには、送信完了時の自動返信メール機能が備わっている。そのテンプレートに「契約撤回のリクエストを受け付けました。追って担当者よりご連絡いたします」といった文言を設定しておけばよい。カスタマーサービス用の外部ツール(ZendeskやFreshdeskなど)を使っているなら、そちらの自動応答機能を利用しても構わない。
ステップ4:既存の返金・返品フローで処理する
撤回リクエストを受け取った後の実際の処理(返金、返品受付、在庫戻しなど)は、これまで使ってきたWooCommerceの標準機能で十分対応できる。注文管理画面からの返金処理、注文メモへの記録、在庫の自動復元といった機能は、WooCommerceコアに組み込まれている。
大事なのは、新しい導線で受け取ったリクエストを、既存の処理フローに確実に乗せることだ。フォームからの通知が特定のメールアドレスに飛ぶだけになっていないか、必ず確認しておく必要がある。
WooCommerce事業者が持つ「既存の優位性」

この指令対応に関して、WooCommerce利用者はいくつかの点で有利な立場にある。カスタム構築のECサイトや、SaaS型の海外製ECプラットフォームと比較しても、柔軟性の高さが際立つ。
コア機能だけでもカバーできる範囲の広さ
WooCommerceは、注文管理、返金ワークフロー、注文メモ、ステータス管理といった機能を標準で備えている。これらはすべて、「契約撤回リクエストを受け取った後の処理」にそのまま流用できる。追加プラグインなしでも、管理画面上で返金処理を行い、その履歴を注文メモに残すところまでは実現可能だ。
これは、フルスクラッチでECサイトを構築した場合と比べて、圧倒的に少ない工数で対応できることを意味する。フォームの設置とメール通知の設定さえ済ませれば、運用に乗せられる状態になるだろう。
プラグインによる拡張性
より高度な対応を目指すなら、WooCommerceのプラグインエコシステムが役に立つ。たとえば、フォーム入力を自動的に注文と紐付けて管理画面に表示するプラグインや、返金リクエストを専用のステータスとして管理できる拡張機能などが存在する。
ただ、最初から完璧を目指す必要はない。まずは本稿で紹介した4ステップを実装し、運用しながら徐々に自動化の範囲を広げていくアプローチが、リスクもコストも抑えられて現実的だ。
実装時に気をつけるべきポイントと限界

ここまでの内容は、EU指令の一般的な要件と、技術的な対応の枠組みを説明したものだ。しかし、実際のビジネスに適用する際には、いくつか注意すべき点がある。
国ごとに異なる可能性がある最終要件
EU指令は加盟国に対し、国内法化する際の「最低基準」を示すものだ。つまり、実際にどのような表現や導線が求められるかは、販売先の国によって細部が異なる可能性がある。WooCommerce Blogの記事でも「具体的な要件はEU加盟国によって異なる可能性があるため、ビジネスを展開している国の規制に詳しい法律専門家への相談を推奨する」と言及されている。
特にドイツやフランスなど消費者保護の基準が厳しい国では、ラベルの文言やフォームの項目について、より詳細な要件が課される可能性を考慮しておくべきだ。
「目立つ場所」の解釈
指令は「目立つ、かつ容易にアクセスできる(prominently and easily accessible)」場所への設置を求めている。これはサイト運営者にとって、解釈の余地がある部分だ。フッターにリンクを置くだけで十分なのか、あるいは注文確認画面やマイページにも導線が必要なのかは、今後のガイドラインや各国の運用次第で変わってくる可能性がある。
安全を取るなら、以下の複数の場所に重複してリンクを設置しておくとよい。
- サイト共通フッター
- 注文完了画面(サンキューページ)
- マイアカウントページの注文履歴
- よくある質問(FAQ)ページ
これなら「見つけられなかった」というクレームのリスクを大幅に減らせる。
本記事は法的助言ではない
念のため明記しておくが、本記事は一般的な情報提供を目的としており、特定のビジネスに対する法的助言を構成するものではない。WooCommerce Blogの元記事にも同様の但し書きがある。最終的な判断は、必ず各国の消費者法に詳しい弁護士や法律専門家に相談してほしい。
この記事のポイント
- 2026年6月19日より、EUの消費者向けB2C ECサイトは「契約撤回」機能の設置が必須となる
- 「購入できるなら同じ画面で解約もできる」状態を求めるのが新指令の本質だ
- WooCommerceならコア機能とフォームプラグインで、比較的少ない工数での対応が見込める
- 実装後は、返金フローや自動返信メールが正しく機能するかを必ずテストすること
- 法解釈や最終的な要件は各国で異なるため、弁護士など専門家への相談が不可欠

Cloudflare IPsecが耐量子暗号に対応、2029年完全移行へ前進
Cloudflareは、同社のIPsecサービスに耐量子計算機暗号(PQC)を導入し、一般提供を開始した。ハイブリッドML-KEM(FIPS 203準拠)を採用し、CiscoやFortinetといった主要ベンダーの機器との相互接続を確認済みだ。これにより、量子コンピュータによる将来の解読リスクに備えた広域ネットワーク(WAN)の保護を、既存のハードウェアで開始できる。
同社はかねてから目標としていたシステム全体の完全なPQC対応の期限を2029年に前倒ししている。今回のIPsec対応は、TLSトラフィックの3分の2以上がすでにPQCで保護されている状況にネットワーク層が追いつくための、重要なマイルストーンとなる。
耐量子暗号IPsecが一般提供開始となる背景

インターネット上の通信の多くは、現在のコンピュータでは解読が困難な公開鍵暗号によって保護されている。しかし、大規模な量子コンピュータが実用化されれば、これらの暗号は簡単に破られてしまう。これが「Q-Day」と呼ばれる転換点であり、想定よりも早く訪れる可能性が指摘されている。
ここで警戒すべきなのが「Harvest-now-decrypt-later(今収集し、後で解読する)」攻撃だ。攻撃者は今日の暗号化された通信データを大量に収集・保存し、将来の量子コンピュータで解読する。サイト間のVPNでよく使われるIPsec通信もこの脅威にさらされてきた。
Webブラウジングの通信を暗号化するTLSでは、すでに2022年からハイブリッドPQCの導入が急速に進んだ。実際、Cloudflareのネットワークに到達するユーザー由来のTLSトラフィックの3分の2以上が、耐量子暗号で保護されている。一方で、企業の拠点間を結ぶIPsecの世界では、相互運用性の確保や標準化の遅れが壁となり、導入が4年ほど遅れていた。
ハイブリッドML-KEMが実現する耐量子暗号

ML-KEMとは何か
今回採用されたML-KEM(Module-Lattice-Based Key-Encapsulation Mechanism)は、量子コンピュータによる攻撃が理論的に困難とされる数学的問題(格子暗号)に基づくアルゴリズムだ。これは、通信の両端が持つ特殊なハードウェアや専用の物理回線を必要としない。標準的なプロセッサ上でソフトウェアとして動作するように設計されている点が、実用上の大きな利点である。
「ハイブリッド」方式の重要性
Cloudflareが実装したのは、IETFのドラフト「draft-ietf-ipsecme-ikev2-mlkem」で規定されるハイブリッド方式である。ハイブリッド方式とは、既存の安全性が十分に検証された古典的なDiffie-Hellman鍵交換と、新しいML-KEMを組み合わせる手法だ。
具体的なハンドシェイクの流れは次のとおりだ。まず、従来のDiffie-Hellman鍵交換を実行して共有鍵を生成する。次に、その鍵を使ってML-KEMの鍵交換を暗号化して実行する。最後に、両方の出力を混合して、実際のデータ通信を保護するセッション鍵を作成する。この二重構造により、仮に将来ML-KEMに未知の脆弱性が見つかったとしても、古典暗号の層が安全性を下支えする。
相互運用性の確立と課題

Cisco、Fortinetとの相互接続に成功
PQCの実装において最大の障壁は、異なるベンダー間での相互運用性の確保だ。Cloudflareの発表によると、今回の一般提供開始に先立ち、以下のネットワーク機器との相互接続テストを完了している。
- Cisco: バージョン26.1.1以降のCisco 8000シリーズセキュアルーター
- Fortinet: FortiOS 7.6.6以降を搭載したブランチコネクタ
これらの機器を拠点側に設置することで、Cloudflareのグローバルネットワークとの間に、耐量子暗号で保護されたIPsecトンネルを確立できる。これにより、特別なハードウェアを新たに調達することなく、既存の投資を活かしてセキュリティを強化できる道が開かれた。
標準化の遅れとciphersuite乱立問題
TLSに比べてIPsecでの標準化が遅れた背景には、鍵配送の代替技術としてのQKD(量子鍵配送)への関心が業界の一部にあったことが挙げられる。RFC 8784で規定されたQKDは、量子力学の原理を用いて盗聴を検知するが、専用のハードウェアと物理的な光ファイバー回線が必須だ。これはインターネット規模での展開には根本的に不向きであり、米国NSAや英国NCSCもQKDへの単独依存に警鐘を鳴らしている。
一方で、PQCのソフトウェアベースのアプローチにはこの制約がない。Cloudflareは、インターネットのオープン性と相互運用性を維持するために、PQCの標準化が不可欠であると主張する。
標準化を巡る混乱も導入を遅らせた一因だ。2023年に公開されたRFC 9370は、IPsecで複数の鍵交換を並行実行する枠組みを提供したが、使用すべき暗号スイートを明確に指定しなかった。この隙間を埋めるように、一部のベンダーは「draft-ietf-ipsecme-ikev2-mlkem」が策定される前に独自の暗号スイートを実装して市場に投入した。NIST SP 800-52r2が警告する「暗号スイートの肥大化」が現実のものとなり、結果として相互運用性に支障が生じている。具体的には、Palo Alto NetworksのRFC 9370ベースの実装とは、現時点で相互接続が確立できていないという。Cloudflareは、業界全体が新たなドラフト標準に集約されることで、この問題が解決されることを期待している。
耐量子インターネットに向けたロードマップ

Cloudflareは、2029年までの完全なPQC対応を目標に掲げている。今回のIPsecへのPQC導入は、そのマイルストーンの一つだ。同社は、この機能を顧客に追加コストなしで提供し、特殊なハードウェアを必要とせずに誰もが耐量子セキュリティを利用できる環境を目指している。
しかし、完全な耐量子環境の実現には、まだ解決すべき課題が残る。現在のdraft-ietf-ipsecme-ikev2-mlkemは「通信の暗号化」のための鍵交換を規定しているが、「通信相手の認証」のためのPQC標準はまだ存在しない。認証部分が古典暗号のままであれば、Q-Day以降に攻撃者が他人になりすましてシステムに侵入する「アクティブ攻撃」を防げない。迫る期限を前に、認証のPQC標準化が次の焦点となることは確実だ。
この記事のポイント
- Cloudflare IPsecがハイブリッドML-KEMによる耐量子暗号(PQC)の一般提供を開始し、2029年の完全移行に向けた一歩を踏み出した。
- CiscoやFortinetの既存ルーターとの相互運用性を確保し、追加のハードウェア投資なしでHarvest-now-decrypt-later攻撃への対策が可能になる。
- RFC標準の不在やベンダー間の実装差異によりIPsecのPQC対応はTLSより4年遅れたが、「draft-ietf-ipsecme-ikev2-mlkem」によって相互運用性の基盤が整いつつある。
- 今後の課題は「通信の認証」をPQCに対応させることであり、真の耐量子セキュリティ実現には標準化コミュニティの継続的な協調が不可欠である。

AIエージェントがCloudflareで自律デプロイ。Stripe連携でアカウント作成からドメイン購入まで完結
AIエージェントがソフトウェアを開発するだけでなく、本番環境のインフラまで自ら調達し、デプロイを完了させる時代が到来した。Cloudflareは2026年4月30日、AIエージェントがユーザーに代わってCloudflareアカウントを作成し、ドメインを購入し、アプリケーションをデプロイできる新機能を発表した。
この仕組みは決済プラットフォームのStripeが提供する「Stripe Projects」と共同設計された新しいプロトコルによって実現されている。従来は人間が管理画面で行っていたAPIトークンの発行やクレジットカード情報の入力といった作業を、AIが安全かつシームレスに代行する。
開発者は複雑な初期設定に煩わされることなく、AIに指示を出すだけで「ゼロから本番公開まで」を最短距離で駆け抜けられるようになる。これはインフラ構築の在り方を根本から変える可能性を秘めたアップデートだ。
AIエージェントがインフラ構築を担う新時代の幕開け

コーディングエージェントはプログラムを書く能力には長けているが、これまでは本番環境へのデプロイという壁に直面していた。アプリケーションを公開するには、ホスティング先のアカウント、支払い手段、そして操作のためのAPIトークンの3つが不可欠だからだ。
これまでは人間がダッシュボードにログインし、設定を済ませてからエージェントに情報を渡す必要があった。Cloudflareが導入した新機能は、この「人間による介在」を最小限に抑えることを目的としている。
開発者の手作業をゼロにするStripe Projectsとの連携
今回の機能の中核にあるのが、Stripeとの提携による「Stripe Projects」だ。これはAIエージェントが複数のサービスを組み合わせてプロジェクトを立ち上げるためのプラットフォームである。開発者がStripeのアカウントを持っていれば、それを認証の基盤として利用できる。
エージェントはユーザーの許可を得た上で、Cloudflareのアカウントを自動的にプロビジョニング(準備)する。もしユーザーがすでにCloudflareのアカウントを持っている場合は、標準的なOAuthフローを通じてアクセス権が譲渡される。これにより、APIキーのコピペという原始的な作業から解放される。
● カード情報登録(手動)
● APIキー発行とコピペ(手動)
● ドメイン検索と購入(手動)
✔ 支払いトークンの自動受け渡し
✔ ドメインの自律取得とデプロイ
上記の図が示すように、人間が介入すべきポイントは「AIへの指示」と「最終的な承認」だけに集約される。これにより、開発のリードタイムは劇的に短縮されるだろう。
プロトコルを支える3つの柱

AIエージェントが自律的に動くためには、単にAPIを叩くだけでは不十分だ。CloudflareとStripeは、エージェントが環境を理解し、権限を得て、支払いを実行するための3つの要素をプロトコルとして定義した。
サービスカタログからの自律的な発見
まず重要になるのが「Discovery(発見)」だ。エージェントは、利用可能なサービスが何であるかを知る必要がある。新しいプロトコルでは、CloudflareなどのプロバイダーがREST APIを通じてサービスカタログをJSON形式で提供する。
エージェントはユーザーの要望に基づき、このカタログから最適なサービス(ドメイン登録、ストレージ、コンピューティングなど)を選択する。人間が「どのメニューから選ぶか」を悩む必要はなく、エージェントがタスク達成に最適な道具を自ら選び出す仕組みだ。
認証とアカウントの即時発行
次に「Authorization(認証)」だ。Stripeがアイデンティティプロバイダーとして機能し、ユーザーの身元を保証する。Cloudflareはこの情報を基に、未登録のユーザーに対しては即座にアカウントを発行する。
発行された認証情報はStripe Projects CLIによって安全に保管され、エージェントはそれを使ってCloudflareのAPIを操作する。この一連の流れにおいて、ユーザーがサインアップフォームに入力する手間は一切発生しない。
クレジットカード情報を渡さない安全な決済
最も懸念されるのは「Payment(支払い)」の安全性だろう。AIにクレジットカード番号を教えるのはリスクが高い。そこでこのプロトコルでは、カード情報の代わりに「支払いトークン」を使用する。
Stripeから発行されたトークンをCloudflareに渡すことで、エージェントは実際のカード番号に触れることなく、有料プランの購読やドメインの購入を実行できる。決済の利便性とセキュリティを両立させた設計となっている。
実際のワークフローとCLIでの操作感

この新機能を利用するには、Stripe CLIと専用のプラグインが必要になる。セットアップが完了すれば、ターミナルから簡単なコマンドを実行するだけでプロジェクトを開始できる。Cloudflareのブログでは、具体的な手順が紹介されている。
Stripe CLIを用いたプロジェクトの初期化
まず、以下のコマンドでプロジェクトを初期化し、Stripeにログインする。これがすべての作業の起点となる。
stripe projects initその後、AIエージェントに対して「新しいドメインを取得してアプリをデプロイしてほしい」と指示を出す。エージェントは自ら stripe projects catalog コマンドを叩いてCloudflareのドメイン登録サービスを見つけ出し、購入プロセスを開始する。
もしStripeアカウントに支払い方法が登録されていない場合は、エージェントがユーザーに対してカード情報の追加を促すプロンプトを表示する。人間はエージェントが提示した確認事項に対して「Yes」と答えるだけで、裏側で複雑なインフラの紐付けが完了する。
セキュリティとガバナンスへの配慮

AIに支払権限を与えることには、慎重な意見も多い。「エージェントが勝手に高額なドメインを大量購入したらどうするのか」という懸念は当然の反応だ。この問題に対処するため、プロトコルには厳格な制限が設けられている。
予算制限と予算アラートによる暴走防止
Stripe Projectsでは、デフォルトで1つのプロバイダーに対して月額100ドルという支出上限が設定されている。エージェントがこの上限を超えて勝手に課金することはできない仕組みだ。
さらに上限を引き上げたい場合は、ユーザーが明示的に設定を変更し、Cloudflare側で予算アラート(Budget Alerts)を設定する必要がある。これにより、AIの自律性を保ちつつ、予期せぬコスト増大を防ぐガバナンスが効いている。
独自分析。インフラのコモディティ化とエージェントOSの加速

今回のCloudflareの動きは、単なる利便性の向上に留まらない。筆者は、これがインフラの「完全な抽象化」に向けた決定的な一歩であると考えている。かつて開発者はサーバーを自前で立てていたが、クラウドが登場し、さらにサーバーレスへと進化した。そして今、インフラは「AIが勝手に調達するもの」へと変貌しようとしている。
ここで重要なのは、Stripeが単なる決済手段ではなく、Web上の「アイデンティティ(身元)」のハブとして機能し始めている点だ。Stripeでログインしていれば、CloudflareもPlanetScaleもNeonも、あらゆるクラウドサービスが即座に利用可能になる。これは、Web全体が1つの巨大なオペレーティングシステム(OS)のように振る舞い、AIエージェントがその上で自由にリソースを操作できる環境が整いつつあることを意味する。
開発者の役割は、コードを書くことよりも「AIにどのようなビジネスロジックを実現させたいか」を定義することへとシフトしていくだろう。インフラの設定ミスやAPIトークンの管理漏れといった「非本質的なトラブル」から解放される未来は、すぐそこまで来ている。
この記事のポイント
- AIエージェントがCloudflareのアカウント作成、ドメイン購入、デプロイを自律的に行えるようになった。
- Stripe Projectsとの連携により、OAuth認証と支払いトークンを用いた安全なプロトコルが構築されている。
- 人間はダッシュボードを操作することなく、CLIとAIへの指示だけで本番環境を構築できる。
- 月額100ドルのデフォルト支出制限により、AIの暴走による高額請求を防ぐ仕組みが備わっている。
- インフラの調達が自動化されることで、開発者はより高度なアプリケーション設計に集中できるようになる。

ストリーミングUIの安定性を高める実装テクニック
WordPressサイトのフロントエンドにチャットボットやリアルタイムのログビューアーを組み込むケースが増えている。こうしたストリーミングUIは、新しいデータが届くたびにDOMを更新するため、適切な制御がないとスクロール位置が勝手に動いたり、ボタンがクリック直前に移動するといった不安定さが目立つ。
特にスクロールの強制移動、レイアウトのシフト、そして過剰な再描画の3つは、ユーザーの操作感を大きく損ねる。本記事では、これらの問題を解決し、WordPressのカスタムエンドポイントや管理画面のダッシュボードにも応用できる安定したUIの実装パターンを紹介する。
ストリーミングUIが不安定になる根本原因

チャット形式のAI応答、ログの逐次表示、ダッシュボードの数値更新。一見異なるこれらのUIは、いずれも同じ3つの根本問題に突き当たる。
スクロールの制御不能
ストリーミング中、多くのUIはビューポートを常に最下部に固定しようとする。これ自体は合理的だが、ユーザーが少し上にスクロールして過去のメッセージを読もうとした瞬間、UIが再び最下部へ引き戻してしまう。ユーザーの意図を無視した自動制御が、インタラクションの邪魔になる。
レイアウトシフト
ストリーミングコンテンツは行数や高さが動的に増えるため、その下にある要素が常に押し下げられる。クリックしようとしたボタンが移動したり、読んでいた行が画面外に消えたりする。DOMを毎回全再構築していると、このシフトはさらに顕著になる。
過剰なレンダリング更新
ブラウザは1秒間に約60回画面を描画するが、ストリームのデータ到着はそれよりも速いことがある。毎回DOMを書き換えていると、実際にはユーザーが目にしないフレームのためにもレイアウト再計算が走り、パフォーマンスがじわじわと低下する。
安定したスクロール動作の実装

まずはスクロールの自動制御をユーザーの意図に合わせる。基本的な考え方は以下の通りだ。
- ユーザーが最下部にいるときは自動スクロールを有効にする
- ユーザーが上方向にスクロールしたら自動スクロールを止める
- 再び最下部に戻ったら自動スクロールを再開する
これを実現するには、ユーザーが意図的にスクロール位置を変えたかどうかを追跡するフラグを設ける。
let userScrolled = false;
chatEl.addEventListener('scroll', () => {
const gap = chatEl.scrollHeight - chatEl.scrollTop - chatEl.clientHeight;
userScrolled = gap > 60; // 60px以上離れたらユーザー操作とみなす
});ここで60pxのしきい値が重要になる。新しい行が追加されて生じる微小な高さ変化でフラグが切り替わらないようにし、本当にユーザーがスクロールした時だけ自動スクロールを停止させる。
自動スクロール関数はフラグを参照するだけでよい。
function autoScroll() {
if (!userScrolled) {
chatEl.scrollTop = chatEl.scrollHeight;
}
}なお、新たなストリームが開始されたら必ず userScrolled をリセットする。これを見落とすと、前回のメッセージでのスクロールが原因で次の自動スクロールが無効になり、読みづらさが続く。
レイアウトシフトを防ぐDOMの差分更新

従来の実装では、新しい文字が届くたびに要素を innerHTML で全再構築することが多い。以下はその典型例だ。
bubble.innerHTML = '';
fullText.split('\n').forEach(line => {
const p = document.createElement('p');
p.textContent = line || '\u00A0';
bubble.appendChild(p);
});
bubble.appendChild(cursorEl);これで動作はするが、更新のたびにDOMツリー全体を破壊して再生成するため、レイアウト再計算が必ず発生する。さらに、カーソルも毎回削除と追加が繰り返され、高速ストリーミング時にはちらつきの原因にもなる。
解決策はシンプルだ。あらかじめ空のテキストノードを持った段落を作り、そこへ直接文字を追記していく。改行が来た時にだけ新しい段落を追加する。
let currentP = null;
function initBubble(bubble, cursor) {
currentP = document.createElement('p');
currentP.appendChild(document.createTextNode(''));
bubble.insertBefore(currentP, cursor);
}
function appendChar(char, bubble, cursor) {
if (char === '\n') {
currentP = document.createElement('p');
currentP.appendChild(document.createTextNode(''));
bubble.insertBefore(currentP, cursor);
} else {
currentP.firstChild.textContent += char;
}
}この方法では、通常の文字追加はテキストノードの拡張だけで済み、レイアウトシフトはほとんど発生しない。改行の時だけ新しい段落が挿入されるが、それ以外の無駄な再構築が一切なくなる。カーソルのちらつきも自然に消える。
レンダリング頻度を抑えるバッファリング戦略

DOMの差分更新だけでもUIは安定するが、まだ文字が届くたびにペイントのトリガーを引いている。特にストリーム速度が速い場合、短時間に大量の小更新が発生し、ブラウザの負荷が積み重なる。
ここで有効なのが受信データのバッファリングと requestAnimationFrame によるフレーム単位のフラッシュだ。到着した文字をいったんバッファに溜め、次の描画直前にまとめてDOMへ書き出す。
let pending = '';
let rafQueued = false;
function onChar(char) {
pending += char;
if (!rafQueued) {
rafQueued = true;
requestAnimationFrame(flush);
}
}
function flush() {
for (const char of pending) {
appendChar(char);
}
pending = '';
rafQueued = false;
autoScroll();
}rafQueued フラグが二重スケジューリングを防ぐ。こうすることで、データ到着頻度とUI更新タイミングが完全に分離され、ブラウザが行う実際の描画回数に最適化されたペースでDOM変更が行われる。変更後の見た目は変わらなくても、特に高速ストリーミング設定時に操作感が格段に滑らかになる。
ストリーム中断への対応とユーザーフィードバック

ユーザーがストリームを途中で停止したり、ネットワークエラーで途切れたりした場合、UIを中途半端な状態のまま放置してはいけない。停止ボタンを押しただけでカーソルが点滅し続けたり、ボタン表示が変わらなかったりすると不信感につながる。
中断時のクリーンアップ
function stopStream() {
clearTimeout(streamTimer);
isStreaming = false;
pending = ''; // 未処理バッファを破棄
rafQueued = false;
if (cursorEl && cursorEl.parentNode) cursorEl.remove();
markStopped(aiBubble); // 「応答が停止しました」ラベルを付与
stopBtn.style.display = 'none';
retryBtn.style.display = '';
retryBtn.focus(); // キーボード操作のため即フォーカス
}バッファをクリアするのは、停止後に残っていた文字が次のフレームで書き込まれるのを防ぐためだ。カーソルの親ノードチェックも、すでに削除済みの場合のエラー回避に必要になる。
再試行機能の提供
中断後は同じ質問を再送信する「リトライ」ボタンを表示する。ユーザーに再度質問を入力させるのではなく、直前の入力を保持しておき、ワンクリックでストリームを最初からやり直せる。
let lastQuestion = '';
function retryStream() {
if (currentMsgEl && currentMsgEl.parentNode) {
currentMsgEl.remove();
}
charIndex = 0;
userScrolled = false;
pending = '';
rafQueued = false;
isStreaming = true;
// ボタン表示切替など
setTimeout(() => {
initAIMsg();
tick(lastAnswer);
}, 200);
}状態の完全リセットが肝だ。前回の文字インデックス、スクロールフラグ、バッファをすべて初期化しなければ、新しいストリームに前の残骸が混ざる。
新規メッセージ送信時の既存ストリーム停止
もう一つ見落としやすいのが、古いストリームが動いている最中に新しいメッセージが送信されたケースだ。そのままにすると2つのストリームが同時にDOMを更新し、文字が混ざり合ってしまう。新しいメッセージの処理を始める前に、必ず進行中のストリームを停止する。
function startStream(question, answer) {
if (isStreaming) {
clearTimeout(streamTimer);
isStreaming = false;
pending = '';
rafQueued = false;
if (cursorEl && cursorEl.parentNode) cursorEl.remove();
}
// ここで新規ストリームのセットアップ
}断りなく上書きするのではなく、明示的に前のストリームをクリーンアップすることで、イレギュラーな重複動作を防ぐ。
アクセシビリティを考慮したストリーミングUI

ストリーミングUIはマウス操作を前提に開発されがちで、支援技術やキーボード操作、動きへの敏感さへの配慮が後回しにされる。しかし、これらは上乗せの追加対応で十分改善できる。
スクリーンリーダーへの対応
スクリーンリーダーは自動で現れたコンテンツを読み上げない。そこで aria-live 属性を使ってライブリージョンを設定する。
<div id="chat" role="log" aria-live="polite"
aria-atomic="false" aria-label="チャットメッセージ"></div>role="log" はこれが逐次更新されるトランスクリプトであることを支援技術に伝える。aria-atomic="false" によって、新しく追加された部分だけが読み上げられ、全文の再読み上げが発生しない。aria-live="polite" なら現在の読み上げを邪魔せず、適切なタイミングで通知される。
中断時に挿入される「応答が停止しました」ラベルも、このライブリージョン内にあれば自動的にアナウンスされる。リトライボタンには、何をリトライするのか分かるように aria-label を設定する。
retryBtn.setAttribute('aria-label',
`リトライ: ${lastQuestion.slice(0, 60)}`);キーボードナビゲーションの確保
停止ボタンやリトライボタンは、ストリーミング中でもTabキーで到達できなければならない。非表示にする際は display: none を使うことでフォーカス順からも除外される。opacity: 0 や visibility: hidden だと不可視要素にフォーカスが当たり混乱を招く。
カーソル点滅エフェクトには aria-hidden="true" を付け、スクリーンリーダーが読み上げないようにする。フォーカスリングは :focus-visible を用い、マウスクリック時には表示せず、キーボード操作時のみ明示する。
動きの抑制
タイピングアニメーションのような連続的な動きは、前庭障害などを持つユーザーにとって負荷になる。OSレベルで設定された動きの設定を、prefers-reduced-motion メディアクエリで検出し、それに従う。
const reducedMotion = window.matchMedia(
'(prefers-reduced-motion: reduce)'
).matches;
if (reducedMotion) {
initAIMsg();
for (const char of text) appendChar(char);
if (cursorEl && cursorEl.parentNode) cursorEl.remove();
done();
return;
}縮小モードが有効なら、ストリーミングアニメーションを完全にスキップし、完成したテキストを一度に表示する。CSS側でもカーソルの点滅を止める。
@media (prefers-reduced-motion: reduce) {
.cursor { animation: none; opacity: 1; }
}この記事のポイント
- ストリーミングUIの不安定さは、スクロール制御・レイアウトシフト・過剰描画の3点に集約される
- ユーザーのスクロール位置を追跡し、最下部にいる時だけ自動スクロールを有効にする
innerHTMLの全再構築をやめ、テキストノードへの差分追記でレイアウト計算を最小限に抑えるrequestAnimationFrameでデータ到着と描画を分離し、ブラウザの負荷を軽減する- ストリーム中断時はバッファクリア、カーソル除去、リトライ機能などで中途半端な状態を残さない
aria-liveやprefers-reduced-motionを用いて、支援技術や動きに敏感なユーザーにも配慮する







