---
title: "フィッシングに見える文言を防ぐAIプロンプトと公開前スキャン"
description: "AIプロンプトの書き方でフィッシング的文言の出力を防ぎ、公開前スキャンで取りこぼしを検出したい担当者向け。具体的なプロンプト追記例とスキャン手順を紹介します。"
image: "https://giga-site.com/og-image.png"
canonical: "https://giga-site.com/articles/phishy-copy-prompt-scan"
markdown: "https://giga-site.com/articles/phishy-copy-prompt-scan/index.md"
category: "セキュリティ"
publishedAt: "2026-06-25"
updatedAt: "2026-06-25"
readingMinutes: 4
---
# フィッシングに見える文言を防ぐAIプロンプトと公開前スキャン

フィッシング的な文言をAI生成HTMLに混入させないためには、プロンプト設計が第一の防衛線になります。そのうえで公開直前にスキャンする仕組みを加えることで、生成段階と公開段階の2箇所でリスクを遮断できます。

> Source HTML: https://giga-site.com/articles/phishy-copy-prompt-scan
> Article index: https://giga-site.com/articles/index.md

## なぜ危ないのか

AIへ「ログインページ」「パスワードリセット画面」「セキュリティ警告バナー」の生成を依頼すると、学習データにあるフィッシングサイトのUIパターンを模倣した文言が出てくることがあります。制作者はデザインの出来映えを確認して満足し、文言をそのまま使ってしまうケースが多いです。

フィッシング的文言はスパムフィルターだけでなく、受信者の心理的な不信感も生みます。一度「この会社は怪しいものを送ってくる」という印象を持たれると、次回以降の正式なメール・URLも疑われるリスクがあります。

- 相手がログインなしで開ける状態か確認する
- PCとスマホで最低1回ずつ表示を確認する
- 内部情報・個人情報・不要な外部送信が残っていないか見る
- レビュー期限と修正時の差し替え方を決めておく

## ソースで見る場所

HTMLのbodyタグ内テキストを一括で抽出してフィッシングキーワードスキャンを実施します。Pythonであれば`from bs4 import BeautifulSoup`でテキストを取り出し、キーワードリストと照合するスクリプトを10行程度で書けます。定期的に共有するHTMLがある場合はCIに組み込んでおくと自動化できます。

aタグのhref属性を全件抽出し、外部URLであれかつアンカーテキストが「こちら」「クリック」「今すぐ」のような誘導表現である組み合わせを確認します。このパターンがスパムフィルターで最も高スコアになりやすいため、優先的に修正します。

- HTML内の外部script・form action・iframeを確認する
- APIキーやトークンらしき文字列がないか検索する
- 画像・CSS・JSのパスが公開後も解決できるか見る
- noindexと認証を混同せず、必要なら両方設定する

## 安全に共有する設定

スキャン済みのHTMLをギガサイト便で共有する場合、共有URL作成時に「会社ドメイン認証」オプションを設定すると、指定ドメインのメールアドレスでログインした人だけが閲覧できます。フィッシング懸念のある文言が仮に残っていても、関係者以外が見るリスクを大幅に下げられます。

共有メッセージに「フィッシング文言スキャン済み（〇〇件ヒットなし）」と記載すると、受信者のセキュリティ担当者がエスカレーションを判断する際の根拠として機能します。スキャン結果を明示することで、信頼性の高い共有プロセスを対外的にアピールできます。

- HTML内の外部script・form action・iframeを確認する
- APIキーやトークンらしき文字列がないか検索する
- 画像・CSS・JSのパスが公開後も解決できるか見る
- noindexと認証を混同せず、必要なら両方設定する

## 再発防止ルール

AIへのプロンプトに「警告・エラー・通知系のコンポーネントの文言はLorem ipsumまたは『通知テキスト』等のプレースホルダとすること。緊急性を煽る言葉・脅迫的な表現は絶対に使わないこと」と追記します。この制約を含むプロンプトを社内で標準化し、コピペ可能なスニペットとして共有します。

生成されたHTMLを初めて開いたときに、デザインより先に文言を一通り音読するレビューを習慣化します。音読することで画面に慣れた目では気づかない違和感に気づきやすくなります。チームレビューでは担当者以外が声に出して読む役を担うと効果的です。

- HTML内の外部script・form action・iframeを確認する
- APIキーやトークンらしき文字列がないか検索する
- 画像・CSS・JSのパスが公開後も解決できるか見る
- noindexと認証を混同せず、必要なら両方設定する

## よくある質問

### BeautifulSoupを使ったスキャンスクリプトの大まかな構成を教えてください。

HTMLファイルを読み込んでget_text()で全テキストを抽出し、キーワードリストでin検索します。ヒットした場合はキーワードと行番号を出力し、0件なら'クリア'と表示するだけのシンプルな構成で十分です。

### プロンプトで制約をかけてもAIが無視することはありますか？

稀にあります。制約を守るよう再度プロンプトで指示するか、生成後に必ずスキャンを実施して取りこぼしを検出する二段構えが確実です。プロンプト単体への過信は危険です。

### スキャンのキーワードリストはどこから入手できますか？

IPAのフィッシング対策ガイドや、Anti-Phishing Working Group（APWG）のレポートに典型的な文言パターンが掲載されています。自社で過去に問題となった文言を随時追加してカスタマイズしてください。

## 関連記事

- [AI生成HTMLにフィッシングに見える文言が残っていないか確認する方法](https://giga-site.com/articles/phishy-copy-check/index.md)
- [フィッシングに見える文言を含むHTMLを共有するときのリスクと対策](https://giga-site.com/articles/phishy-copy-risk-countermeasure/index.md)
- [社外レビュー前にフィッシングに見える文言を検出するチェックリスト](https://giga-site.com/articles/phishy-copy-external-review-checklist/index.md)
- [APIキー直書きを防ぐAIプロンプトと公開前スキャン](https://giga-site.com/articles/hardcoded-api-key-prompt-scan/index.md)
- [外部フォーム送信先を防ぐAIプロンプトと公開前スキャン](https://giga-site.com/articles/external-form-action-prompt-scan/index.md)
- [決済リンク混入を防ぐAIプロンプトと公開前スキャン](https://giga-site.com/articles/payment-link-prompt-scan/index.md)

```json
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "フィッシングに見える文言を防ぐAIプロンプトと公開前スキャン",
  "description": "AIプロンプトの書き方でフィッシング的文言の出力を防ぎ、公開前スキャンで取りこぼしを検出したい担当者向け。具体的なプロンプト追記例とスキャン手順を紹介します。",
  "datePublished": "2026-06-25",
  "dateModified": "2026-06-25",
  "mainEntityOfPage": "https://giga-site.com/articles/phishy-copy-prompt-scan",
  "url": "https://giga-site.com/articles/phishy-copy-prompt-scan",
  "inLanguage": "ja",
  "image": "https://giga-site.com/og-image.png",
  "articleSection": "セキュリティ",
  "author": {
    "@type": "Organization",
    "name": "ギガサイト便"
  },
  "publisher": {
    "@type": "Organization",
    "name": "ギガサイト便"
  },
  "mainEntity": [
    {
      "@type": "Question",
      "name": "BeautifulSoupを使ったスキャンスクリプトの大まかな構成を教えてください。",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "HTMLファイルを読み込んでget_text()で全テキストを抽出し、キーワードリストでin検索します。ヒットした場合はキーワードと行番号を出力し、0件なら'クリア'と表示するだけのシンプルな構成で十分です。"
      }
    },
    {
      "@type": "Question",
      "name": "プロンプトで制約をかけてもAIが無視することはありますか？",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "稀にあります。制約を守るよう再度プロンプトで指示するか、生成後に必ずスキャンを実施して取りこぼしを検出する二段構えが確実です。プロンプト単体への過信は危険です。"
      }
    },
    {
      "@type": "Question",
      "name": "スキャンのキーワードリストはどこから入手できますか？",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "IPAのフィッシング対策ガイドや、Anti-Phishing Working Group（APWG）のレポートに典型的な文言パターンが掲載されています。自社で過去に問題となった文言を随時追加してカスタマイズしてください。"
      }
    }
  ]
}
```
