/
898.txt
53 lines (40 loc) · 2.55 KB
/
898.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
* 仕様書
[REFS[
- [2] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2015-04-25 04:40:19 +09:00]] 版) <https://html.spec.whatwg.org/#location>
]REFS]
* 性質
[14] この[[属性]]は、 [CODE(xattr IDL)@en[Unforgeable]] です [SRC[>>2]]。
* 取得器
[5] [CODE(JS)@en[location.href]] の[[取得器]]は、次のようにしなければ[MUST[なりません]]
[SRC[>>2]]。
[FIG(steps)[
= [6] [[文脈オブジェクト]]の[F[[[関係する[CODE(DOMi)@en[Document]]]]]]の[F[起源][文書の起源]]と[[入口設定群オブジェクト]]の[F[起源]]が[[同じ起源ドメイン]]でなければ、
== [7] [CODE(DOMe)@en[SecurityError]] [[例外]]を[[投げ]]、ここで停止します。
= [8] [[文脈オブジェクト]]の [F[URL][Location (DOM)]] に[[URL直列化器]]を適用した結果を返します。
]FIG]
* 設定器
[3] [CODE(JS)@en[location.href]] の[[設定器]]は、次のようにしなければ[MUST[なりません]]
[SRC[>>2]] 。
[FIG(steps)[
= [9] [VAR[URL]] を、[[入口設定群オブジェクト]]に関して、与えられた値の[[URLの構文解析]]を行った結果に設定します。
= [10] [VAR[URL]] が失敗なら、
== [11] [CODE(DOMe)@en[TypeError]] [[例外]]を[[投げ]]、ここで停止します。
= [12] [[文脈オブジェクト]]と [VAR[結果]]の [[URL記録]]について
[[[CODE(DOMi)@en[Location]]-object-setter navigate]] を実行します。
]FIG]
;; [13] [[設定器]]は[[同じ起源ドメイン]]かどうかの検査を行いません。ですから、
[CODE(DOMi)@en[Location]] [[オブジェクト]]にアクセスすることができれば、
任意の[[起源]]が当該[[閲覧文脈]]の [[navigate]] を呼び出すことができます。
* 歴史
[1] [CITE[Masato Kinugawa Security Blog: location.hrefの盲点]]
( ([TIME[2012-08-07 01:59:56 +09:00]] 版))
<http://masatokinugawa.l0.cm/2012/08/safari-location.href.html>
[4] [CITE@en[Define security around Window, WindowProxy, and Location properly · whatwg/html@acae3df]]
([TIME[2016-03-13 23:37:36 +09:00]] 版)
<https://github.com/whatwg/html/commit/acae3df652b382e9f4f1d1b4dc7e08e2b00df821>
[15] [CITE@en[Editorial: non-relative flag got renamed · whatwg/html@d360c27]]
([TIME[2016-03-31 12:41:51 +09:00]] 版)
<https://github.com/whatwg/html/commit/d360c27d44c52390441b5910d39e898160ec016d>
[16] [CITE@en[Merge effective script origin into origin · whatwg/html@8a843f2]]
([TIME[2016-03-31 18:01:12 +09:00]] 版)
<https://github.com/whatwg/html/commit/8a843f2169a6864a3024c4329528dccb2051d275>