異例のユニコード文字を使用するドメインハック(2018年)

2026/11/01 19:44

異例のユニコード文字を使用するドメインハック(2018年)

RSS: https://news.ycombinator.com/rss

要約▶

Japanese Translation:

インターネットは、現代のシステムが DNS の構造において特別なユニコード文字を有効なトップレベルドメインとして扱うようになったため、標準的な文字と数字を超えて進化しています。ブラウザに入力する際に、これら独自の記号を含む URL を入力すると、IDNA2008 プロセス(RFC5895)によって自動的に標準の ASCII テキストに変換されます。このプロセスは、Simple_Lowercase_Mapping 属性に基づいて特定のユニコードエントリを構成要素である ASCII 文字にマッピングします。この機能は国番号コードだけでなく、アメリカ合衆国の州名などのサブドメインや、数学風やフランクフルト体のような様々なスタイルフォントにも適用され、ユーザーが視覚的に特徴のあるウェブアドレスを作成することを可能にしています。この革新は、一部のソーシャルメディアプラットフォームにおける文字数の制限や URL フィルタへの巧妙な回避手段を実現しますが、互換性において重大な分断を生み出します:ブラウザや

wget
/
curl
などのツールは概ね対応していますが、
dig
や
host
といった伝統的なユーティリティや一部のオンラインサービスでは、このような複雑なドメイン構造を認識できず動作しない場合が多いです。したがって、開発者は独自のデジタルアイデンティティを構築できる一方で、レガシーのネッティングツールに依存する組織は、専用の設定なしではこれらの革新的なアドレスを解決することが困難であり、すべてのユニコード文字が対応しているわけではありません(例えば、特定のスタイルで点がついている丸や四角形などはサポートされていない)。

本文

ユニコードの「派手な」ドメイン名:見えないリンクと URL の魔法

ユニコード規格には、あまり使用されていないシンボルが多数存在します。 商標記号

™
、サービスマーク
℠
、処方箋用記号
℞
など、単なる文字ではない特殊な記号も定義されています。

📦 雑多な文字(Miscellaneous)の奇妙なエントリ

「文字似符号」カテゴリには、以下のような単一文字のエントリがあります。

  • 電話記号:℡
  • ヌメロサイン:№

ドメイン名として使える?

驚くべきことに、これらの文字はドメインネームシステム(DNS)上のトップレベルドメイン(TLD)として機能します。

  • https://edent.tel/
    の代わり:
    https://edent.℡/
  • https://www.norid.no/
    の代わり:
    https://www.norid.№/

注意:これらのリンクをコピーしてブラウザに貼り付けると、正常に表示されます。

🎨 ドメイン名の任意部分への適用

この手法は TLD だけでなく、ドメイン名の任意の部分にも適用可能です。以下の例のように、URL の文字自体を変形させることができます。

スタイルURL 例
スクリプト風
https://ℰ𝒳𝒜ℳ𝓟ℒℰ.𝒞𝓞ℳ/
マス体太字
https://𝐞𝐱𝐚𝐦𝐩𝐥𝐞.𝐩𝐨𝐦/
フラクチャー
https://𝖊𝖝𝖆𝖒𝖕𝖑𝖊.𝖈𝖔𝖒/
マス体太字斜体
https://𝒆𝒙𝒂𝒎𝒑𝒍𝒆.𝒄𝒐𝒎/
マス体太字スクリプト
https://𝓮𝔁𝓪𝓶𝓹𝓵𝓮.𝓬𝓸𝓶/
ダブルストローク
https://𝕖𝕩𝕒𝕞𝕡𝕝𝕖.𝕦𝕠𝕞/
モノスペース
https://𝚎𝚡𝚊𝚖𝚙𝚕𝚎.𝚌𝚘𝚖/
スーパースクリプト
https://ᵉˣᵃᵐᵖˡᵉ.ᶜᵒᵐ/
マス体無衬線太字
https://𝗲𝘅𝗮𝗺𝗽𝗹𝗲.𝗰𝗼𝗺/
マス体無衬線太字斜体
https://𝙚𝙭𝙖𝙢𝙥𝙡𝙚.𝙨𝙤𝙢/
マス体無衬線斜体
https://𝘦𝘹𝘢𝘮𝘱𝘭𝘦.𝘤𝘰𝘮/
マス四角形
https://🄴🅇🄰🄼🄿🄻🄴.🄲🄾🄼/

(※注:ドットは必ず四角形でなければなりません)
丸囲み
https://ⓔⓧⓐⓜⓟⓛⓔ.ⓒⓞⓜ/

(※注:ドットは丸囲みにしてはいけません)

⚠️ 注意点:すべてのフォントスタイルがブラウザでサポートされているわけではありません。

🪄 仕組みは?(魔法の裏側)

これは実際には「魔法」ではなく、ブラウザが行う自動変換処理によるものです。

  1. DNS サーバーの役割:
    dig edent.℡
    といったクエリに対して、DNS サーバー自体は
    .℡
    という記号をそのまま認識・返信することはしません。
  2. ブラウザの正規化: ブラウザはドメイン内で特殊な文字(例:
    .℡
    )を見つけると、RFC 5895 に規定された IDNA2008 プロセスに従って自動で正規化します。
  3. マッピング処理: Unicode データベース(
    Simple_Lowercase_Mapping
    プロパティ)を参照し、特殊文字を通常のアルファベットに置き換えます。

℡ の変換例(内部データ)

Unicode データ内のエントリには以下のような情報があります:

2121;TELEPHONE SIGN;So;0;ON;<compat> 0054 0045 004C;;;;N;T E L SYMBOL;;;;

  • U+0054
    → T
  • U+0045
    → E
  • U+004C
    → L

これにより、

.℡
は
.tel
として解釈されます。Python では以下のようにテスト可能です:

import sys
print(sys.argv[1].decode("utf-8").encode("idna"), "℡")

✅ 実際に動作する?

はい、現代的なブラウザやオペレーティングシステムであれば問題なく動作します。 また、コマンドラインツール(

wget
,
curl
)でも正常に機能します。

⛔ 失敗するケースと制限事項

一方で、以下の状況ではリンクとして認識されません:

  • 特定の Web サイト:Twitter や Facebook など、一部のプラットフォームはこれを有効な URL とみなさず、自動でリンク化しません。
  • コマンドラインツール:
    dig
    ,
    host
    などの DNS クエリツールもこのドメインを解釈できません。

以下は

bash
で
dig
を実行した結果の例(失敗ケース)です:

<<>> DiG 9.10.6 <<>> edent.℡;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 55282

💡 なぜこれが必要なのか?(有用性)

この技術は非常に有用であり、近年の重要な発見の一つです。その利点は以下の通りです:

  • 見た目が派手:URL そのものが装飾的です。
  • 文字数の節約:特定のドメインでは略語として機能し、URL を短くできます。
  • フィルタ回避:内容が不適切と判断されやすい URL でも、特殊記号を使うことでアクセス可能になる場合があります(※全てのプラットフォームで有効ではありません)。

重要:あらゆる現代的なブラウザはこれらの「派手な」ドメイン名をサポートしていますが、自動リンク化されないサイト(Facebook など)では共有しても機能しません。

🌍 どこで使える?(有効な TLD の一覧)

主に国コードですが、以下の単一文字が有効な TLD にマッピング可能です。

シンボル国・地域 / 備考
㏕米国軍(米海兵隊など)
℡.tel レジストリ
№ノルウェー
㍳オーストラリア
㍷ドミニカ共和国
㎀パナマ
㎁ナミビア
㎃モロッコ
㎊フランス領ポリネシア
㎋ノルfolkアイルランド
㎏キルギス
㎖マリ
㎙ミクロネシア連邦
fiフィンランド
㎜ミャンマー
㎝カメルーン
㎞ / ㏎コモロ
㎰パレスチナ
㎳モントセラト
㎷ / ㎹マレー共和国(旧名)
㎺パラオ
㎽ / ㎿マラウイ
㏄ココス(キーリング)諸島
㏅コンゴ民主共和国
㏉ガイアナ
㏗フィリピン
㏘サン=ピエール=ミクロン諸島
㏚プエルトリコ
㏛スリナム
㏜エルサルバドル
℠サンマリノ
™トルクメニスタン
st / ſtサオトメ・プリンシペ(旧名)
㎇グレートブリテン(廃止)
ß南スーダン(利用不可)
㏌インドおよびインディアナ(.us のサブドメイン)
Ⅵ / ⅵバージン諸島およびバージニア(.us のサブドメイン)
flフロリダ(.us のサブドメイン)
㎚ニューメキシコ(.us のサブドメイン)
㎵ネバダ(.us のサブドメイン)
㍵.ovh の一部として使用

さらに有効な文字が見つかった場合は、コメント欄にご連絡ください。

🔗 このブログ記事はいつでも以下で閲覧できます:

https://🅂𝖍𝐤ₛᵖ𝒓.ⓜ𝕠𝒃𝓲/🆆🆃🅵/

同じ日のほかのニュース

一覧に戻る →

2026/11/02 0:58

Show HN: HackerBooks – ハッカートビューのように、HN で言及された本のためのサービス

## Japanese Translation: このテキストは、マウス使用よりも効率を優先したアプリケーション内でのキーボードナビゲーションの習得に必要な手順を提供しています。核心的なメッセージは、特定のキーが本間の移動や異なるコンテンツビューへの瞬時のアクセスを可能にする直接コマンドとして機能することです。例えば、`/` を入力するとフォーカス検索バーが有効化され、`j` または `k` を押すことで家(Home)行から手を離さずにリスト内で縦方向に移動できます。`Enter` を押すとフォーカスされた本が開かれ、`Esc` はウィンドウを閉じたり前の画面に戻ったりします。また、`g` の組み合わせ(例:`g h`, `g t`, `g m`)は、ホーム、全時間最高位、最も推奨されるなどの特定セクションへの直接ジャンプを可能にします。さらに、`?` はヘルプコマンドを表示します。これらのショートカットにより、マウスへの依存が軽減され、カテゴリへの高速アクセスやデジタルライブラリの滑らかな管理が実現されます。結果として、このシステムはユーザーに対しインターフェースに対する即時の制御力を付与し、基本的なナビゲーションタスクを迅速なアクションに変換することで、全体の生産性と使いやすさを向上させます。なお、このガイドは現在の機能への参照ツールとしての役割に限定されています。

2026/10/30 13:17

Nibnib:解凍速度が極めて高速な画像圧縮

## Japanese Translation: nibnib イメージ形式は、RP2350 マイクロコントローラ上で高速かつ決定論的なデコードを目的とした専用圧縮方式である。入力バイト 1 つあたり 2 ピクセルの並列デコードを行い、約 6 クロックサイクルで 1 ピクセル当りのデコードを完了し、4bpp の圧縮比を実現する。絶対値カラーを保持する標準的なパレット形式とは異なり、nibnib はパレットにカラーデルタを格納し、Floyd-Steinberg エラー拡散法を用いて人間の視覚感度特性をモデル化することで滑らかな領域での画質向上を図る。デコード処理は完全に決定論的であり、直前までにデコードされた最終ピクセルを 2 倍とし、ストリームからバイトを読み込みパレットでアップルックして加算し、入力バイト 1 つあたり 2 ピクセルの 16bpp(RGB 565)を生成する。一方、エンコーディングは非対称であり大幅に低速である。可能となるパレットとコードワードの組み合わせに対して探索を行い、立方体を小さなデルタ値および加重付きガウスランダムエントリで構成した初期化から始め、高品質な複製へデコード可能なエンコーディングを選択する。その貪欲的な左から右への探索手法のため、現時点ではシャープなエッジの右側に残留アーティファクトが生じるが、将来のバージョンでは右から左またはブーストロホン方式によるエンコーディングによりこの影響を低減することが可能である。イメージのレイアウトは、2 バイトで幅と高さを格納するヘッダー、256 エントリの 32 ビットパレット、そして各行が 2 ピクセルに続き ((width − 2)/2) バイトのパレットインデックスを持つ構成となっている。追加的なメタデータフィールドは存在せず、この形式はアーカイブストレージではなくリアルタイムレンダラーとの緊密な統合を意図している。元々 RP2350 での DVI 出力実験として開発された nibnib は、Apache License 2.0 または MIT ライセンスのいずれかを選択して vic-2350 リポジトリで入手可能である。

2026/10/28 18:46

AFL++ を活用したより効果的なファスティングテストのためのヒント

## Japanese Translation: 6 年間の約 1,000 プロジェクトのテストに基づき、著者は AFL++ が Linux 上の C/C++ fuzzing プラットフォームとして決定版であると主張し、ファジー化されていないソフトウェアにはほぼ間違いなくバグが含まれていることを確認しています。速度を損なうことなく脆弱性の検出を最大化するためには、公式文書で強調されている特定のハイパフォーマンス構成を採用すべきです。主要な最適化策には、クラッシュ間でプログラムの状態を維持するパシストンモードの利用(通常は 10 倍ほど高速化)、`afl-gcc-fast` とともに `-fsanitize=address,undefined` および他のフラグでサニタイザーを設定することが含まれます。具体的なチューニングも不可欠であり、デフォルトの 4KiB リミットを超えて `max_malloc_fill_size` を増やすことで use-after-free エラーを検出し、`detect_stack_use_after_return` を有効化し、GCC の libstdc++ で `-D_GLIBCXX_DEBUG` を用いてコンテナオーバーフローを検出します。さらに、単一の翻訳単位(instrumented target と uninstrumented library)でビルドすることで静的関数の設定を簡略化でき、テスト設計ではグローバル状態の干渉を最小限に抑え、ASan による読み取りミスを防ぐために直接バッファ渡しを避け、ファイル入力は `memfd_create` を使用する必要があります。これらのターゲット指向な調整により、デフォルト設定で見逃されがちな重要なメモリ安全性の問題を発見でき、大規模な fuzzing キャンペーンの徹底的さを大幅に向上させます。

異例のユニコード文字を使用するドメインハック(2018年) | そっか~ニュース