
こんにちは!静岡県浜松市でWEBデザイナーをしています小瀧です。
今回は少しマニアックな話題ですが、HTMLの構文的な「ゆるさ」を逆手にとった情報隠蔽技術(ステガノグラフィ)について解説します。
ステガノグラフィとは、「一見わからない形で情報を隠す技術」。
画像に情報を埋め込んだり、スペースや改行で暗号を作ったりといった手法が知られていますが、実はHTMLにもその余地があるのです。
そのひとつが「タグの大文字・小文字を利用する手法」です。
HTMLはタグ名の大文字・小文字を区別しない
HTMLのパーサー(解析エンジン)は、タグ名において大文字・小文字の違いを区別しません。
<div>Hello</div> <DIV>World</DIV>
この2つは同じ意味として扱われ、ブラウザでは等しく描画されます。
これを逆手にとって、「小文字=0、大文字=1」のように、HTMLソースに情報を潜ませることができるのです。
例:HTMLタグの中にバイナリ情報を埋め込む
<DiV>Secret</DiV> <dIv>Message</dIv>
このように、表向きには普通のHTML文書ですが、タグ名の大文字小文字の並びに意味を持たせれば、「隠しメッセージのビット列」を表現することができます。
どうやって情報を隠すのか?
タグ名だけでなく、属性名や不要なタグも使えば、情報量はさらに増やせます。
バイナリ隠蔽例
<DiV class="Xx">1</DiV> ← D=1, i=0, V=1 → 101
<dIv class="xX">0</dIv> ← d=0, I=1, v=0 → 010
このように、文字の大文字・小文字の順をバイナリ化し、そこに文字コードや暗号データを埋め込むのが基本的な手法です。
実際の悪用例とリスク
この技術は研究分野でも知られていますが、悪用された例もあります。
スパム・マルウェア配布サイトでの利用
スクリプトを直接埋め込むと検知されるため、タグ構造に偽装してステガノグラフィ的にC2(Command & Control)情報やマルウェアIDを隠していた例も報告されています。
広告詐欺(Ad Fraud)
広告タグの中に、目視ではわからない識別情報やトラッキングIDを隠すために使われるケースもあります。
これは「クローキング」の一種であり、Googleなどのポリシー違反になる可能性があります。
対策:HTMLは“見た目”だけで判断しない
このような隠蔽型の情報埋め込みを防ぐためには
- タグ構文に一貫性のない大文字小文字が使われていないか確認
- HTMLファイルを静的解析ツールでチェック
- WAF(Web Application Firewall)でHTML層の監視ルールを導入
HTMLリントツールの導入
たとえば以下のようなツールを使って構文スタイルを統一することで、ステガノグラフィ対策にもなります。
- HTMLHint
- eslint-plugin-html
- Prettier(設定でタグ小文字化を強制)
まとめ
HTMLタグの大文字・小文字の違いを活かしたステガノグラフィは、一見ただのコーディングスタイルに見えて、実は情報の埋め込みが可能という技術です。
- HTMLタグは大小文字を区別しない
- その性質を利用して情報を隠す手法が存在する
- セキュリティ的には潜在的リスクがある
普段の制作では使うことはまずないですが、“知っておくことで見抜ける”リテラシーとして、とても重要な知識です。
HTMLはシンプルに見えて、実は奥深い。そんな一面を今回はお届けしました!













