[3] HTTP における実効要求URLは、 HTTP 要求メッセージから復元した要求されている URL です。
[17] 利用者エージェントにおいては、対象URLが実効要求URLです >>15。
authority-form
の場合、
実効要求URLは未定義 >>2 とされていました。この形を使うのは
CONNECT
の時なので、 HSTS では実効要求URL
を定義する必要がありませんでした。[13] HTTP/1.1 仕様に従わない要求については定義も言及もされていません。 例えば非ASCII文字が含まれる場合は定義されていません。
400
を返すことになっていますから、問題ではないと考えているのかもしれません。
しかし現実にはそのような要求を送信するクライアントがありますから、
適当にパーセント符号化されていたと解釈するべきかもしれません。[28] HTTP over Unixドメインソケットのように、 適当な URL scheme が存在せず実効要求URLが決められないこともあります。
[14] 比較は、 RFC 2616 の定義によるとされています >>2
(HTTPにおけるURLの比較を参照)。ただし path が無い URL
と /
は異なるものとして扱わなければなりません >>2。
absolute-form
も参照。[29] クライアントは要求対象や Host:
に任意の値を指定できますから、
鯖はこれが適切な値かどうか検査する必要があります。
[32] TLS を用いている場合、 SNI に指定された値と実効要求URL の値が一致しているか確認する必要があります。
[30] この検査を怠ると、 DNS rebinding 攻撃その他の脆弱性につながることがありますし、 鯖やアプリケーションの設計や実装方法次第で認証をすり抜けるなどの不具合が生じる場合もあり、危険です。
[31] セキュリティー上の問題以外でも、同一の資源を表す URL が複数になり参照する人や場面によって異なる URL になって不便が生じることもあります。
[33] ダイジェスト認証では、 credentials の uri=""
引数にも指定することになっています。