セキュリティ

外部スクリプト依存のリスクと確認方法

AIで作ったHTMLや配布されたテンプレートは、外部のスクリプトやライブラリを読み込んでいることがよくあります。便利な反面、読み込み先の都合でページが壊れたり、思わぬ情報が外に渡ったりする危険もあります。この記事では、外部スクリプト依存で何が起きるのか、そしてどこを見れば確認できるのかを順を追って整理します。

外部スクリプトに依存するとはどういうことか

HTMLの中に書かれた「script src=...」や「link href=...」のうち、参照先が自分のファイルではなく、別のサーバー上にあるものを外部スクリプト・外部リソースと呼びます。アニメーション用のライブラリ、アイコンフォント、計測タグ、グラフ描画ツールなどが代表例です。

便利なのは間違いありません。数行書き足すだけで高度な機能が手に入ります。ただし、その機能の実体は自分の手元にはなく、提供元のサーバーから毎回読み込まれます。つまり、ページの一部を他人に預けている状態だと考えると、リスクの輪郭が見えてきます。

とくにAI生成のコードでは、本人が頼んでいない外部ライブラリが「念のため」付け足されていることがあります。実際には使われていない読み込みが残っている、というケースも珍しくありません。

依存がもたらす4つの代表的なリスク

外部リソースへの依存は、便利さと引き換えに次のような不確実性を抱え込みます。どれも「自分では制御できない部分」に起因するのが共通点です。

  • 提供元が停止すると、その機能が動かなくなりページが崩れる
  • 提供元が中身を差し替えると、知らないうちに挙動が変わる(改ざん・乗っ取りのリスク)
  • 読み込みのたびに閲覧者の情報が提供元へ渡り、意図しない外部送信になりうる
  • 読み込みが遅い・重いと、ページ全体の表示も連れて遅くなる

よくあるNG例と安全な直し方

外部スクリプト依存のリスクと確認方法では、「検索に出さない」と「見られないようにする」を混同しないことが重要です。noindexやrobots.txtは検索エンジンへの指示であり、アクセス制限そのものではありません。

安全に共有するには、誰に見られると困るかを先に決め、URL共有だけで足りるのか、認証や期限が必要なのかを選びます。共有相手と機密度が決まったら、URLのみ・パスワード・メール認証・会社ドメイン認証のどれで渡すかを選びます。

  • NG: 機密情報入りHTMLを認証なしURLで共有し、noindexだけで安心する
  • OK: パスワード・メール認証・会社ドメイン認証で閲覧者を絞る
  • NG: テスト用APIキーや社内URLをHTML内に残したまま渡す
  • OK: 公開前に外部送信先、秘密情報、フォーム送信先を確認する

なぜAI生成HTMLでとくに注意が必要か

AIは「それらしく動く」コードを返しますが、どこから何を読み込むかまで人間が意図したとおりとは限りません。サンプルで使われがちな特定のCDNや、デモ用のライブラリがそのまま残ることがあります。

見た目が完成していると、中身まで確認せずに共有してしまいがちです。けれど外部読み込みは画面には現れません。ソースを開いて初めて、知らないドメインへの参照に気づく、という順序になりやすいのです。

「動いているから問題ない」と「安全だから問題ない」は別の話です。今この瞬間に表示できることと、提供元が将来も信頼できることは、切り分けて考える必要があります。

外部依存を確認する具体的な手順

難しいツールがなくても、HTMLファイルをテキストエディタで開けば、依存の大半は目視で洗い出せます。次の順で確認すると漏れにくくなります。

  1. HTMLをテキストエディタで開き、「src=」と「href=」をすべて検索する
  2. 参照先が「http://」「https://」で始まる外部URLか、自分のファイルかを仕分ける
  3. 外部URLのドメインが、自分が把握している信頼できる提供元かを確認する
  4. そのスクリプトを消してもページが成立するか、本当に必要かを判断する
  5. 不要な読み込みは削除し、必要なものだけ残してから共有する

残す依存・減らす依存の見極め方

外部読み込みをすべて禁止する必要はありません。広く使われ、運営元がはっきりしている提供元なら、利用するメリットが上回る場面も多いはずです。判断軸を持っておくと迷いません。

迷ったときは「これが今日止まったら困るか」「閲覧者の情報がどこへ渡るか説明できるか」を自問してみてください。説明できない依存ほど、減らす候補になります。可能なら、ライブラリ本体を自分のファイルとして同梱し、ZIPにまとめて公開すれば、外部の都合に左右されにくくなります。

  • 残す候補: 運営元が明確で、その機能が確実に使われている
  • 減らす候補: 提供元が不明、または読み込んでいるのに使っていない
  • 同梱を検討: 小さなライブラリで、自分のファイルとして持てる
  • 代替を検討: 計測タグなど、本当に共有先で必要か疑わしいもの

外部送信があるかを短時間で見るポイント

外部スクリプトのリスクは、見た目だけでは分かりません。公開前にHTMLを検索して、外部へ読み込み・送信しそうな記述を拾うだけでも、レビュー共有に出してよいかの判断がしやすくなります。

特にAI生成HTMLは、便利そうなフォームや分析タグを勝手に含むことがあります。必要な外部依存か、削っても問題ない依存かを分けてから共有しましょう。

  • script src="https://..." がある場合、読み込み元を確認する
  • form action="https://..." がある場合、送信先と送る内容を確認する
  • fetch( や XMLHttpRequest がある場合、外部APIへ送る値を見る
  • iframe、pixel、analytics系の記述が不要なら削除する
  • 相手に入力させるUIがある場合、実際には送信されない説明を添えるか削除する

ギガサイト便で外部依存を確認しながら公開する手順

ギガサイト便は、HTMLやZIPをアップロードする際に内容をスキャンし、外部スクリプトへの依存や外部フォームへの送信といった兆候を検出して警告します。中身を理解したうえで、公開するかどうかを自分で選べます。

  1. HTMLまたはZIPをアップロードすると、自動でスキャンが走る
  2. 外部スクリプト依存などの兆候があれば、警告として表示される
  3. 警告を見て、その依存が必要か・残すか・直すかを判断する
  4. 不要な読み込みを消した場合は、同じURLのまま差し替えて再確認する
  5. 見せる相手に応じて、認証方式や公開期限をあわせて設定する

よくある質問

外部スクリプトを読み込むHTMLは公開しないほうがいいですか?

一律で禁止する必要はありません。運営元がはっきりしていて、その機能を実際に使っているなら問題になりにくいです。一方、提供元が不明だったり、読み込んでいるのに使っていなかったりする依存は、削除を検討してください。

自分のHTMLが外部に依存しているか、簡単に調べる方法はありますか?

HTMLをテキストエディタで開き、「src=」と「href=」を検索するのが手軽です。参照先が外部URLになっている箇所が、外部依存にあたります。アップロード時のスキャンで外部スクリプト依存の兆候を警告として確認することもできます。

外部スクリプトが原因で情報が漏れることはありますか?

外部リソースを読み込むと、そのたびに閲覧者の情報が提供元のサーバーへ渡る場合があります。意図しない外部送信になっていないか、提供元が信頼できるかを確認しておくと安心です。ただしページ自体は静的に公開されるため、サーバー側で何かを保存する処理は動きません。

外部依存を減らすと、ページは動かなくなりませんか?

使っていない読み込みであれば、消してもページはそのまま動くことがほとんどです。必要なライブラリは、自分のファイルとして同梱しZIPでまとめて公開すれば、外部の都合に左右されにくくなります。削除後は実際にURLを開いて表示を確認してください。

noindexを設定すれば認証は不要ですか?

不要ではありません。noindexは検索結果への表示を抑えるための指定で、URLを知っている人の閲覧を止める仕組みではありません。閲覧者を制限したい場合は認証が必要です。

外部送信がありそうなHTMLは、共有前にどこを見ればよいですか?

まずHTML内で「https://」「form」「fetch」「script」「iframe」を検索します。外部URLへ読み込みや送信をしている箇所があれば、必要な依存か、機密情報や入力内容が送られないかを確認してから共有します。迷う場合は、その機能を一度外して静的な確認用HTMLにするのが安全です。

関連記事

セキュリティ

公開前にHTMLから秘密情報を取り除く方法

AIツールで作ったHTMLに秘密情報が紛れていないか不安な方向け。APIキーやメールアドレスの見つけ方と取り除く手順を、非エンジニアでも実行できるレベルで具体的に解説します。

8分で読める
セキュリティ

社外レビュー前にクリックジャッキングを検出するチェックリスト

社外レビュー用にHTMLを共有する前にクリックジャッキングリスクを洗い出したい方向け。ソース検索からブラウザ開発者ツールを使った検証手順まで、見落としがちな確認項目を網羅し、安全な公開判断ができるようになるチェックリストを提供します。

5分で読める
セキュリティ

社外レビュー前にhttp混在を検出するチェックリスト

社外レビュー用にHTMLを共有する前にhttp混在を確実に検出したい担当者向け。目視チェックだけでなくブラウザの開発者ツールやコマンドラインを活用した確認手順と、再発を防ぐ運用ルールをセットで解説します。

5分で読める
セキュリティ

社外レビュー前にXSSを検出するチェックリスト

社外レビューを依頼する前にAI生成HTMLのXSSリスクを洗い出したい開発者・デザイナー向け。inline scriptやevalの有無、外部送信先の特定方法など、公開前に一度だけ通るべき手順を解説する。

6分で読める
「セキュリティ」の記事をもっと見る →