location.href

location.href

仕様書

性質

[14] この属性は、 Unforgeable です >>2

取得器

[5] location.href取得器は、次のようにしなければなりません >>2

  1. [6] 文脈オブジェクト関係するDocument起源入口設定群オブジェクト起源同じ起源ドメインでなければ、
    1. [7] SecurityError 例外投げ、ここで停止します。
  2. [8] 文脈オブジェクトURLURL直列化器を適用した結果を返します。

設定器

[3] location.href設定器は、次のようにしなければなりません >>2

  1. [9] URL を、入口設定群オブジェクトに関して、与えられた値のURLの構文解析を行った結果に設定します。
  2. [10] URL が失敗なら、
    1. [11] TypeError 例外投げ、ここで停止します。
  3. [12] 文脈オブジェクト結果URL記録について Location-object-setter navigate を実行します。

[13] 設定器同じ起源ドメインかどうかの検査を行いません。ですから、 Location オブジェクトにアクセスすることができれば、 任意の起源が当該閲覧文脈navigate を呼び出すことができます。

参照元

[17] location.href の設定による navigate (ページ遷移) では、通常通り参照元 (Referer:) が設定されます。 location.hash に限ってこれを抑制する方法はありません。

[18] かわりに、少し手間がかかりますが、 referrerpolicy 属性付きの a 要素を作成して click メソッドを呼び出すことで、参照元を制御しつつ遷移できます。

歴史

[1] Masato Kinugawa Security Blog: location.hrefの盲点 ( ( 版)) <http://masatokinugawa.l0.cm/2012/08/safari-location.href.html>

[4] Define security around Window, WindowProxy, and Location properly · whatwg/html@acae3df ( 版) <https://github.com/whatwg/html/commit/acae3df652b382e9f4f1d1b4dc7e08e2b00df821>

[15] Editorial: non-relative flag got renamed · whatwg/html@d360c27 ( 版) <https://github.com/whatwg/html/commit/d360c27d44c52390441b5910d39e898160ec016d>

[16] Merge effective script origin into origin · whatwg/html@8a843f2 ( 版) <https://github.com/whatwg/html/commit/8a843f2169a6864a3024c4329528dccb2051d275>