質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.42%
HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

HTTPヘッダー

Hypertext Transfer Protocol(HTTP)の中のHTTPヘッダフィールドはHTTPの要求やレスポンスの機能しているパラメーターが含まれます。その要求もしくはレスポンスライン(メッセージの最初の一行)でメッセージヘッダを作ります。

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

Q&A

解決済

2回答

2858閲覧

ドメイン名の末尾にドットをつけたURLの挙動について

arcxor

総合スコア2857

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

HTTPヘッダー

Hypertext Transfer Protocol(HTTP)の中のHTTPヘッダフィールドはHTTPの要求やレスポンスの機能しているパラメーターが含まれます。その要求もしくはレスポンスライン(メッセージの最初の一行)でメッセージヘッダを作ります。

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

0グッド

2クリップ

投稿2023/03/07 04:14

概要

例えば Yahoo! Japan と Google を例に挙げますが、

通常、(1) のような一般的なURLを使うと思いますが、(2) のように「ドメイン名の末尾にドットをつけたURL」でもアクセスを試みることが可能です。そして、名前解決は期待通り実行されるため、目的のWebサーバからHTTPレスポンスを得ることが可能です。

しかしこのとき、ドメイン名の末尾にドットを付けているせいで、意図せぬ結果になることがあります。Yahoo! がその一例でエラーページになってしまっています。一方 Google はドットを取り除いたURLにリダイレクトするような挙動となっていて、この問題に対して適切な対応が採られているように見えます。

質問

  • (Q1) 「ドメイン名の末尾にドットをつけたURL」で HTTP リクエストすることについて、何か名称はあるでしょうか。(この問題について調べたいので名称を知りたいと思っています)
  • (Q2) 「ドメイン名の末尾にドットをつけたURL」による HTTP リクエストによって生じる問題(特に脆弱性につながるような攻撃)はあるでしょうか。(間接的な DoS に繋がることは想像できますが、それ以外に何か興味深い攻撃に繋がるといった情報があれば知りたいです)
  • (Q3) Google の挙動のように、この問題を簡単に回避する Web サーバ側での対策や設定について一般的に知られているものはあるでしょうか。(例えば Apache であれば .htaccess にこんな風に書けばいいよといったものなど)
  • (Q4) その他、この件について補足情報があれば教えてください。

全てについて回答できない場合でも、何かご存知の方がいればぜひご回答いただければ助かります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

Q2)HSTSがバイパスされてしまう脆弱性がいくつかありました
https://curl.se/docs/CVE-2022-30115.html

投稿2023/03/07 13:52

a.com

総合スコア881

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

arcxor

2023/03/07 14:32

回答ありがとうございます。 HSTSのバイパスは思いつきませんでしたが、確かにその線での問題が起こせそうですね。参考になります。
guest

0

ベストアンサー

ちょうど、その問題について語ったWebサイト(http://www.dns-sd.org./trailingdotsindomainnames.html、ドメイン最後のドットはなしでもアクセス可能)を見つけました。

簡単にまとめれば、

  • DNSレベルでは、ドットはあるのが正式(ない場合には相対的な探索とみなされる)
  • 現実には、ブラウザもWebサーバもドットの有無で正規化を行わず、両者を別物として扱う

ということで、バーチャルホストを設定する場合にドット付きを処理できるようにしていないと、どのホストにアクセスするのか不明として扱われてしまう、という状況です。

投稿2023/03/07 05:56

maisumakun

総合スコア145509

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2023/03/07 06:08

Q3>いちばん原始的なパターンとして、バーチャルホスト(など、どのホストへアクセスされたかの情報)を使わないWebサーバの場合はなんの影響もありません。
arcxor

2023/03/07 14:29

提示いただいた記事を読んでみました。確かにDNSの世界では末尾のドットは意味を持っていますが、ウェブブラウジングにおいてアドレスバーに打つURLが末尾にドットを持っているかどうかをどう扱うかについては明確な言及がないようですね。 私自身、バーチャルホストを設定して運用しているWebサーバがありますが、特別な対策はしていないものの、この問題によって不具合が生じたことはありません(ドット付きでも特に問題なくサイトを閲覧できます)。 Webアプリケーション側でドメイン名のマッチングなどを行っているような場合には不具合が生じそうですね。 Q3 へのコメントもありがとうございます。確かにバーチャルホストを設定しないような場合(Webアプリケーション側でもドメイン名のマッチングを行わない場合)には、何の対策も不要そうですね。
arcxor

2023/03/07 14:31

関連するものとして The danger of the trailing dot in the domain name と第される記事 http://www.hitechyo.ga/2013/03/danger-of-trailing-dot-in-domain-name.html を見つけました。Q3 に関する具体的な設定例が載っているようです(が、その設定が適切かどうかは分かりません。もう少しスマートな設定方法があるような気もします)。
arcxor

2023/03/07 15:14

関連情報です。 2020年に「URLに「.」を追加するだけでウェブサイトの広告を回避できる可能性があるという指摘」 https://gigazine.net/news/20200611-dot-host-error/ という内容でこれに関連する問題が話題になっていたようです。 (自身で回答をつけようとしましたが、そうすると自己解決になってしまうようなので、こちらにコメントしておきます。)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.42%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問