はじめに
- Polymarketのハッキングのニュースを見て、自分のShopifyのストアは大丈夫か気になっている
- テーマに計測やチャットのタグを貼っているが、何を確かめればいいのか分からない
- 「外部スクリプト」「サプライチェーン攻撃」と言われても、自分の店の何の話なのかピンとこない
このような方のための記事です。
この記事では、2026年10月29日にPolymarketで起きた外部スクリプトの乗っ取りを説明したうえで、Shopifyのストアで同じことが起きうる場所と起きない場所、テーマに貼ったタグを点検する手順を解説します。
10月29日、Polymarketで外の会社のコードがすり替わった
Polymarketは、選挙やスポーツの結果に賭けるように売り買いができる、海外の予測市場のサービスです。
10月29日の午後、国際版のPolymarketで、利用者の口座から身に覚えのない売却と出金が起きました。原因はPolymarketのサーバーではなく、サイトが外の会社から読み込んでいたスクリプトです。サイトの表示の速さを測るためのコードが、お金を抜き取るコードに差し替えられていました。

すり替わったコードは、ログインしている利用者の画面の中で動き、本人が操作したのと同じ形で持っている権利を売って、お金を攻撃者に移しました。サイトから見ると本人の操作と区別がつかないので、仕組みの側はそのまま実行してしまいます。被害は726件、約270万ドルです。
Polymarketは取引を止めてスクリプトを外し、約1時間後に再開しました。取引を止めていた間に損をした約5,500件の分も含めて、390万ドルを返すと発表しています。外の業者のスクリプトから被害が出たのは、6月に続いて2回目です。
Polymarketは「外部の業者の1社が侵害された」と説明していて、会社名は出していません。同じ日に、サイトの速さを測るサービスのDebugBearが、自社の計測の仕組みがセキュリティの問題に巻き込まれたと公表し、使っている会社に埋め込みのコードをサイトから外すよう呼びかけました。どうやってコードが書き換えられたのかは、11月2日の時点で明らかになっていません。
自分で入れていないコードが、ある日変わる
今回の入口は、Polymarketが書いたコードではありません。サイトには「この会社の配信元からこのファイルを読み込む」という1行が書いてあるだけで、ファイルの中身は外の会社が持っています。中身が変われば、サイトの側が何も触っていなくても、次に開いた人のブラウザでは新しい中身が動きます。
外から読み込むタグは、自社で書いたコードと同じ力を持ちます。画面の文字を読む、ボタンの動きを変える、入力した内容を外に送る、といったことがすべてできます。計測やチャットのような目立たないタグでも同じです。

Shopifyのストアで同じことが起きうる場所
Shopifyのストアにも、外の会社のコードが動く場所があります。ただ、どこに入れたかで、できることが大きく違います。

テーマに直接貼ったタグとアプリの埋め込みは、ページの中で自由に動く
テーマのtheme.liquidやカスタムLiquidのセクションに貼った計測・チャット・広告のタグは、トップ・商品ページ・カートで、テーマのコードと同じ力で動きます。レビューやお気に入りなど、ストアの表に何かを出すアプリの埋め込みも、アプリの開発元の配信元からJavaScriptを読み込んでいます。
10月には、Shopifyのアプリの設定に不正なJavaScriptが入り、カートの「購入手続きへ」を押したお客さまが偽の決済画面に飛ばされる被害が海外で出ました。外から読み込むコードが書き換えられると何が起きるかを、Shopifyのストアで示した例です。経緯と確かめ方は偽の決済画面に飛ばされる攻撃の記事にまとめています。
決済画面には、店が外のコードを貼れない
決済画面は事情が違います。以前は決済の設定の「追加スクリプト」の欄に、計測のタグなどを店が自由に書けました。この欄は2025年8月28日から閲覧のみになり、新しく書き足せません。Plus以外のプランでも、サンキューページと注文状況ページを新しい作りへ切り替える期限は2026年8月26日で、すでに過ぎています。
決済画面に表示を足すアプリの拡張は、決済画面から切り離された囲いの中で動き、ページのHTMLにも支払いの情報にも触れられない作りです。
計測はピクセルなら囲いの中で動く
管理画面の「設定」→「お客様イベント」に入れるピクセルも、囲いの中で動きます。アプリが入れるピクセルはページの中身を読んだり書いたりできず、店が自分で入れるカスタムピクセルも、ページとは別の枠の中で動いてストアのページには触れられません。

計測のタグがすり替わっても、ピクセルの中にあれば、Polymarketのように画面の中で勝手に操作することはできません。計測のためだけにテーマに直接貼っているタグは、ピクセルに移せないかを一度確かめてみてください。
テーマに入れたタグを点検する手順
Shopifyのストアで点検するのは、ページの中で自由に動く2か所、テーマに直接貼ったタグとアプリの埋め込みです。
1. ストアが読み込んでいる外のドメインを一覧にする
まず、ストアのページが実際にどこからスクリプトを読み込んでいるかを出します。
- パソコンのChromeで自分のストアのカートの画面を開く
- キーボードのF12を押し、開いた画面の「Console」のタブを選ぶ
- 以下のコードをコピペして、Enterを押す
[...new Set(performance.getEntriesByType('resource').filter(e => e.initiatorType === 'script').map(e => new URL(e.name).hostname))]
初めて貼り付けるときは、Chromeが貼り付けを止めて「allow pasting」と打つよう求めてきます。その場合は「allow pasting」と打ってEnterを押し、もう一度貼り付けてください。
ストアのドメインと「cdn.shopify.com」のほかに出てきたドメインが、外から読み込んでいるスクリプトです。1つずつ、何のためのものか、誰が入れたのかを言えるかを確かめてください。言えないものが、外す候補です。
RYXでは、自社の開発ストアで毎朝このコードを動かし、前の日の一覧と比べています。10月19日に始めてから、出てくるのはストアのドメインとcdn.shopify.comの2つだけで、増えた日はありません。
2. テーマのコードで、外から読み込んでいる行を探す
次に、そのドメインがテーマのどこに書かれているかを探します。管理画面の「オンラインストア」→「テーマ」で、公開中のテーマの「…」から「コードを編集」を開いてください。左の虫めがねのアイコンを押すと、テーマのすべてのファイルを検索できます。

検索欄に「src="https://」や、手順1で出てきたドメインを入れると、外から読み込んでいる行が出ます。theme.liquidの<head>の中や、カスタムLiquidのセクションに貼られていることが多いです。Shopifyの無料テーマのHorizonをそのまま使っている開発ストアでは、1件も出ませんでした。出てきた行は、手順1の一覧と突き合わせてください。
3. 試しに入れたまま忘れたタグを外す
Polymarketの入口は、サイトの速さを測るためのコードでした。速度の計測・ヒートマップ・A/Bテストのように、試すために貼ったタグは、試し終わったあとも外し忘れやすいものです。ツールの契約を止めても、テーマに貼った1行は自動では消えません。
使っていないタグはテーマから消してください。消すのが不安なときは、先にテーマを複製しておけば、元に戻せます。
4. アプリの埋め込みを見直す
テーマエディタの左上の「埋め込みアプリ」のアイコンを押すと、テーマに埋め込まれているアプリと、それぞれが有効か無効かが一覧で出ます。使っていないアプリの埋め込みは無効にし、アプリごと外せるものは外してください。見方の画面は偽の決済画面の記事に載せています。
外部記事アプリでテーマを拡張するアプリを使用してストアの機能を拡張する方法を説明します。help.shopify.com
5. 決済に進めるかを、ときどき確かめる
点検で外せないタグも残ります。シークレットウィンドウで自分のストアの商品をカートに入れ、「購入手続きへ」を押して、自分のストアのドメインの決済画面に着くかを確かめてください。数分でできます。カード情報は入れなくて大丈夫です。
外部スクリプトの乗っ取りにShopifyの店がやること
ShopifyのストアがPolymarketと違うのは、お客さまのお金や支払いの情報を扱う決済画面に、店が外のコードを貼れないところです。カードの番号を入れる画面で、店がテーマに貼ったタグが動くことはありません。
一方で、カートまでのページには、店が貼ったタグとアプリのコードが、ストアのコードと同じ力で動いています。ここで「購入手続きへ」のボタンを横取りされると、お客さまは本物の決済画面にたどり着けません。10月の偽の決済画面の件がそうでした。
対策はタグを減らすことと、残したタグが何かを店が言えるようにしておくことです。外から読み込むものは、中身がいつ変わるかを店の側では決められません。読み込む数が少ないほど、すり替わる入口も少なくなります。
10月には、ストアから外部のサイトへ移るときにお客さまへ確認を出す仕組みもShopifyに入りました。偽のページへ飛ばされたときの備えのひとつです。確認が出ない条件は「移動しますか」の確認の記事にまとめています。
さいごに
Polymarketの被害は、サイトが外の会社から読み込んでいた計測のコードがすり替わって起きました。Shopifyのストアでは決済画面に外のコードを貼れませんが、カートまでのページに貼ったタグとアプリの埋め込みは同じ立場にあります。読み込んでいるドメインの一覧を出し、何のためのものか言えないタグから外してください。
テーマに残ったタグの棚卸しや、計測をピクセルに移す作業は、お問い合わせからお気軽にご相談ください。


