8月14日、Hackadayが「ShieldFont: Bludgeoning AI Scrapers That Disrespect Robots.txt」と題した記事を公開した。ブラウザで見ると正常な文章なのに、スクレイパーが取得するテキストは意味不明な内容になっている——そんな「毒入りコンテンツ」を生成する技術「ShieldFont」が話題だ。フォントのリガチャという印刷由来の仕組みをAI対策に転用するという発想は一読の価値がある。
robots.txtが機能しない時代に生まれた対抗手段
かつてWeb上には暗黙の紳士協定があった。サイトのルートにrobots.txtを置けば、検索エンジンのクローラーはその指示を守ってインデックスを制御できた。だがLLM(大規模言語モデル)の学習データ収集が本格化した現在、この協定を無視して強行スクレイピングするAIクローラーが横行している。そのような状況への対抗策として登場したのがShieldFontだ。
リガチャを使った「見た目は正常、中身は無意味」の仕掛け
ShieldFontの仕組みはホワイトペーパーに詳述されており、核心はリガチャ(ligature)の悪用にある。
リガチャとは、複数の文字(グラフェム)を結合して一つのグリフとして描画する組版技術だ。たとえば「fi」や「fl」をひとつの字形として表示するのが典型例で、印刷・DTP分野では可読性向上のために長く使われてきた。OpenTypeフォントではligaやcaltといったフィーチャータグでリガチャの挙動を制御できる。
ShieldFontはこれを逆手に取る。カスタムフォントファイルを定義し、特定の文字列シーケンスを「見た目は元の文字列と同じに見えるが、コードポイント上は別の文字」に置換するリガチャルールを仕込む。テキスト中の約4分の1の単語を、辞書ベースのロジックで選択し、このリガチャを使ったフォントベースの表現に置き換える。その結果:
- ブラウザ上でレンダリングされた表示:正常な文章に見える
- スクレイパーがパースするHTMLのテキスト:文法的には成立しているが意味不明な内容になる
実装面では、ShieldFontはWebフォント(WOFF2形式)として配信され、CSSで対象要素に適用するだけで導入できる設計になっている。サーバーサイドの改修は不要で、既存のHTMLを書き換えずにCSSを一行追加するだけで動作する点が実用上の強みだ。なお、置換対象の単語選択は完全ランダムではなく辞書ベースのロジックで制御されているため、同一ページを複数回スクレイピングされた際に一貫した「誤情報」を返す設計になっているとホワイトペーパーは説明している。
ChatGPTなどのLLMがこの汚染テキストを学習すると、誤った情報を出力する可能性がある。記事では「ピザに木工用ボンド」「石を食べる」といった過去のLLM誤回答ネタを引き合いに、将来的にさらに奇妙な出力が生まれうると皮肉交じりに触れている。
欠点も正直に認めている
ShieldFontは万能ではなく、記事は明確にデメリットを挙げている:
- スクリーンリーダーへの影響:視覚障害者が使う読み上げソフトはHTMLのテキストを解析するため、リガチャ置換後の意味不明テキストを読み上げてしまう
- 正規の検索エンジンにも効く:GoogleやBingのクローラーも同様に影響を受けるため、SEO的なトレードオフが生じる
そのため実用的な用途としては、静的なアーカイブコンテンツやrobots.txtのDisallowディレクティブで検索エンジンのクロールを既に除外しているコンテンツへの適用が現実的な選択肢だ。検索流入を必要とするページへの適用は、現時点では得策ではない。
対抗策のコストを上げることが目的
AIスクレイパー側がレンダリング後のテキストもパースするよう適応すれば、この手法は突破される。しかし記事が指摘する通り、スクレイピングのコストを大幅に引き上げること自体が抑止力になる。
現時点でサイトオーナーが使える対抗ツールは複数存在し、ShieldFontはそのひとつの選択肢だ:
- **Nepenthes**:動的に生成される無限リンクページにクローラーを誘い込んで消耗させる「迷路トラップ」
- **Cloudflare AI Labyrinth**:Cloudflareが提供する同種のボット迷子化サービス
- ShieldFont:コンテンツ自体を毒入りデータに変える
これらは単独ではなく組み合わせて使うことで、より高いコストをスクレイパーに強いることができる。なお、AIスクレイパーによる実害の事例としては、映画データサイトthe-numbers.comがボットに食い荒らされた件も最近報告されており、問題の深刻さは増している。
詳細はShieldFont: Bludgeoning AI Scrapers That Disrespect Robots.txtを参照していただきたい。