Upgrade to Pro — share decks privately, control downloads, hide ads and more …

本当は難しいPSL

Masahiro Honma
November 22, 2019

 本当は難しいPSL

吉祥寺.pm のアンカンファレンスの資料です。
https://kichijojipm.connpass.com/event/152180/

Masahiro Honma

November 22, 2019
Tweet

More Decks by Masahiro Honma

Other Decks in Technology

Transcript

  1. 問題: 次のうちイラッとせず検索できる文字列は? • city.sapporo.jp • city.kichijoji.jp • town.nagoya.jp • town.kyoto.jp

    • 村.福岡.jp • 村.沖縄.jp • 高校.教育.香港 • こんにちわ.世界 • δγ.ελ • jcode.pl 答え
  2. Public Suffix List (PSL) とは (1) • https://publicsuffix.org/ • 2008年発祥

    • ドメインを登録可能な接尾辞の一覧 例: com, net co.jp, ne.jp
  3. Public Suffix List (PSL) とは (2) • Set-Cookie可能ドメインの判定のため作られた 例: www.fout.co.jp

    Set-Cookie 可能 fout.co.jp Set-Cookie 可能 co.jp Set-Cookie 不可 jp Set-Cookie 不可
  4. PSL の構造 • 1行に1つ定義が書かれている • ピリオド区切りでPublic Suffixを記述する 例: co.jp •

    ワイルドカードが使える 例: *.nagoya.jp • 除外指定ができる 例: !city.nagoya.jp
  5. アプリケーションからPSLを使う C, C# Elixir, Erlang, Go, Haskell, Java, JavaScript, TypeScript,

    Lua, .NET, Objective-C, Perl, PHP, Python, Ruby, Rust, Swift https://publicsuffix.org/learn/
  6. 問題: nagoya.jp は Public Suffix だろうか? • 2ラベルからなるので、 *.nagoya.jp というルールには合致しない

    • jp というルールに合致する。よって jp が Public Suffix • nagoya.jp は jp 以下に登録可能 → URL
  7. Public Suffixの仕様とブラウザの挙動は違う • Chromeでは、*.x が PSL に含まれる場合に x も PSL

    に含まれるとする • platform.sh problem と呼ばれる問題 https://wiki.mozilla.org/Public_Suffix_List/platform.sh_Problem ◦ PSLの標準アルゴリズムとブラウザの一般的な挙動が異なる
  8. 問題: platform.sh は Public Suffix だろうか? • 2ラベルからなるので、厳密には *.platform.sh というルールには合致しない

    • しかし、 Chrome では platform.sh が Public Suffix と解釈される • よって、URLではなく検索語句として扱われるはず