セキュリティ

alt属性やaria-labelに残る非表示テキストからの情報漏えい

ページ上では何も見えなくても、alt属性やaria-label、display:noneの要素にはテキストが残っています。これらはソースを開けば誰でも読めるため、削除したつもりの情報が共有HTMLに残り続ける事故が起きます。この記事では見えない場所に潜む機密の典型例と、配布前の点検方法を整理します。

見えない=消えた、ではない

画面に表示されないテキストでも、HTMLのソースには文字として残っています。altやaria-label、title属性、コメント、display:noneやvisibility:hiddenで隠した要素はその代表です。ブラウザの開発者ツールやソース表示を使えば、閲覧者は容易に中身を読めます。

見た目を整える過程で要素を隠しただけ、画像の説明文に内部メモを書いただけ、といった軽い気持ちが漏えいにつながります。共有前に消すべきは画面表示だけでなく、ソースに残るテキスト全体だと意識することが第一歩です。

機密が残りやすい場所

altやaria-labelには、スクリーンショットのファイル名由来の情報や、社内向けの補足説明がそのまま入りがちです。ボタンやアイコンのラベルに、未公開の機能名やコードネームが残っていることもあります。

隠し要素では、テンプレートの下書き、別案の文章、デバッグ用の数値などが残りやすい場所です。HTMLコメントに書いた申し送りや、data属性に埋めた識別子も見落とされがちなポイントです。

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

alt属性やaria-labelに残る非表示テキストからの情報漏えいでは、「検索に出さない」と「見られないようにする」を混同しないことが重要です。noindexやrobots.txtは検索エンジンへの指示であり、アクセス制限そのものではありません。

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

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

配布前に点検する手順

公開する前に、ソースレベルで非表示テキストを洗い出しておきましょう。表示確認だけでは見つからないため、次の手順で機械的にチェックすると漏れにくくなります。

目視だけに頼ると、属性の中身やコメントは見落としがちです。検索機能で属性名を一括で探したり、ソースを上から通読したりと、機械的に拾う工夫を組み合わせると確実性が上がります。

  1. HTMLソース全体を開きalt・aria-label・title属性を順に確認する
  2. display:noneやvisibility:hiddenで隠した要素の中身を確認する
  3. HTMLコメントとdata属性に残った内部メモを探す
  4. 画像ファイル自体に埋め込まれた説明や撮影情報も確認する
  5. 見つかった内部向けテキストは削除するか公開可能な表現に書き換える
  6. 修正後にもう一度ソースを通読して残りがないか確かめる

画像そのものにも残る情報

属性だけでなく、画像ファイルの中にも見えない情報が残ることがあります。撮影日時や位置情報、編集ソフトが書き込むメタデータがその例です。スクリーンショットには、画面端に映り込んだ別タブや通知が含まれることもあります。

画像を共有物に含めるなら、トリミングやメタデータの除去まで含めて確認しておくと安心です。見える範囲だけでなく、ファイルそのものを点検対象にしてください。

ZIP共有では未使用ファイルにも注意

CSSやJS、画像をまとめてZIPで配る場合、HTMLから参照していない古いファイルや別案の画像が同梱されたままになりがちです。直接ページに出なくても、ZIPを展開すれば中身は読めます。

配布用のZIPには、本当に必要なファイルだけを入れる運用にしておくと、見えない場所からの漏えいをまとめて防げます。

ギガサイト便で配る前の最終確認

ギガサイト便はドロップしたHTMLやZIPをそのまま共有URLとして公開します。配信されるのはアップロードしたファイルそのものなので、属性や隠し要素に残ったテキストも一緒に公開される点に注意してください。点検は配布物の側で済ませておく必要があります。

認証や公開期限で閲覧者と公開範囲を絞れば、万一の残り漏れがあっても影響を限定できます。ただし根本対策は、配布前にソースから不要なテキストを取り除くことです。

よくある質問

画面に表示されないテキストでも漏えいの対象になりますか

なります。altやaria-label、隠し要素、HTMLコメントはソースを開けば読めるため、画面に出ないだけで内容自体は公開されています。配布前にソースレベルで点検し、内部向けの記述を取り除いてください。

alt属性に内部メモを書いてしまいがちなのはなぜですか

altは画面に出ないため、補足や申し送りを気軽に書き込みやすいからです。しかし閲覧者はソースで読めるので、altには公開してよい代替テキストだけを書き、内部メモは別管理にするのが安全です。

display:noneにしておけば隠せていますか

見た目は隠せますが、データとしては残っています。ソースや開発者ツールで読めるため、機密を隠す手段にはなりません。本当に出したくない情報は要素ごと削除してください。

画像の中の情報まで気にする必要がありますか

用途によっては必要です。撮影日時や位置情報などのメタデータ、スクリーンショットの映り込みから情報が漏れることがあります。配布前にトリミングとメタデータ除去を確認しておくと安心です。

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

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

関連記事

セキュリティ

CSP(コンテンツセキュリティポリシー)の基礎と考え方

ブラウザに「読み込んでよいリソース」を宣言してスクリプト実行を制御するCSPは、名前の難しさのわりに考え方はシンプルです。HTMLを共有・公開する場面でどう使うかを、実務感覚で理解したい方向けに基礎から解説します。

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

共有HTMLに載せる情報を最小化する考え方

確認用HTMLに本番の顧客データや内部情報をそのまま貼っていませんか。共有する情報が多いほど漏えい時のダメージは大きくなります。必要なものだけを残す「データ最小化」の考え方で、共有HTMLから何を削り何を残すかを解説します。

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

共有HTMLの画像に残るExif・位置情報を消してから渡す

写真の本文では場所を伏せていても、Exifデータに撮影地や端末情報が残っていると情報が漏れます。共有HTMLに画像を載せる前に確認すべき項目と、位置情報の削除手順を解説します。

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