なぜ危ないのか
社外レビュー用のHTMLは「内部確認済みのもの」として送付されるため、受け取ったクライアントは内容を信頼してリンクをクリックします。その信頼を逆用して、AIが生成した不審なURLへのリンクが混入していると、クライアントのセキュリティポリシーに引っかかり案件そのものが白紙に戻る可能性があります。
社外公開HTMLにダウンロードリンクが含まれる場合、そのリンクは社内だけでなくクライアントのIT部門のセキュリティスキャンの対象にもなります。企業によっては未知のドメインへのリンクが含まれるファイルを自動でブロックするエンドポイントセキュリティを導入しており、メール添付のHTMLが開けないという報告が来ることもあります。
- 相手がログインなしで開ける状態か確認する
- PCとスマホで最低1回ずつ表示を確認する
- 内部情報・個人情報・不要な外部送信が残っていないか見る
- レビュー期限と修正時の差し替え方を決めておく
ソースで見る場所
チェック1:`grep -n 'download' *.html` でdownload属性を含む行を抽出します。各行のhref値を確認し、自社ドメインまたは事前に合意した共有ストレージのURLであることを確認します。`#`や`javascript:void(0)`のプレースホルダーが残っている場合は修正または削除してから送付してください。
チェック2:Chromeで「ネットワーク」タブを開いてページをリロードし、リクエスト一覧を「ドメイン」でソートします。見覚えのないドメインへのリクエストが発生していないかチェックします。ダウンロードリンクをクリックしなくても、ページ読み込み時に外部トラッキングスクリプトが自動でリクエストを送信している場合があります。
- HTML内の外部script・form action・iframeを確認する
- APIキーやトークンらしき文字列がないか検索する
- 画像・CSS・JSのパスが公開後も解決できるか見る
- noindexと認証を混同せず、必要なら両方設定する
安全に共有する設定
ダウンロードリンク先のファイルは、社外共有専用のクラウドストレージ(OneDriveビジネス版やGoogle Workspaceのドライブ)に置き、「リンクを知っている人だけが閲覧可能」に設定します。URLを無期限公開にするのではなく、レビュー期間に合わせたアクセス期限(7〜14日など)を設定してください。
送付前にリンクを自分のスマホや別端末で実際にクリックして動作確認します。「クリックするとファイルが正しくダウンロードされる」「意図しないサイトにリダイレクトされない」という2点を必ず確認してから送付してください。自分の環境でしか動かないローカルパスが残っているミスは、この確認で発見できます。
- HTML内の外部script・form action・iframeを確認する
- APIキーやトークンらしき文字列がないか検索する
- 画像・CSS・JSのパスが公開後も解決できるか見る
- noindexと認証を混同せず、必要なら両方設定する
再発防止ルール
AIへの生成プロンプトに「ダウンロードリンクの実URLはすべて`#`に設定し、コード内コメントで「本番URLに差し替えること」と記述すること」という規則を明記します。チームのプロンプトライブラリにこのルールを登録しておけば、誰でも同じ安全な初期状態の成果物を得られます。
Gitリポジトリのプレコミットフックに `grep -rn 'download' --include='*.html' .` を追加し、download属性が含まれる場合にコンソールに警告を表示させます。完全なブロックにする必要はなく「このファイルにはdownload属性のリンクが含まれています。送付前に確認してください」というメッセージを出すだけで、担当者の気づきを促せます。
- HTML内の外部script・form action・iframeを確認する
- APIキーやトークンらしき文字列がないか検索する
- 画像・CSS・JSのパスが公開後も解決できるか見る
- noindexと認証を混同せず、必要なら両方設定する
よくある質問
プレースホルダーURLのまま送付してしまったことに後から気づきました。どうすればよいですか?
すぐに共有URLを無効化してクライアントに連絡し、リンクをクリックしないよう伝えてください。修正版を正しいURLで再公開した後、新しいURLを送付し旧URLは削除または期限切れに設定します。
クライアントがHTMLをローカルに保存して開く場合、ダウンロードリンクの挙動は変わりますか?
相対パスのリンクはローカル保存環境では参照先ファイルが存在しないためリンク切れになります。外部URLリンクはローカルでも同じ挙動です。いずれにしても送付前の動作確認は本番環境に近い状態で行ってください。
download属性のないリンクでも、PDFなどのファイルが直接参照されていれば確認が必要ですか?
必要です。download属性がなくてもブラウザがファイル種別(PDF・ZIP・EXEなど)を判断してダウンロードする場合があります。特に実行可能ファイル(.exe・.dmg・.sh)へのリンクは必ず送付前に削除してください。