-
Notifications
You must be signed in to change notification settings - Fork 4
/
137.txt
423 lines (308 loc) · 22.1 KB
/
137.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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
[109] [DFN[[CODE(HTTP)@en[[[Origin:]]]]]] [[ヘッダー]]は、
当該[[要求]]を行う [[fetch]] の実行元の[RUBYB[[[起源]]]@en[origin]]を表すものです。
* 仕様書
[REFS[
- [290] '''[CITE@en-US[Fetch Standard]] ([TIME[2014-06-30 12:53:29 +09:00]] 版) <http://fetch.spec.whatwg.org/#origin-header>'''
- [306] [CITE@en-US[Fetch Standard]] ([TIME[2014-06-30 12:53:29 +09:00]] 版) <http://fetch.spec.whatwg.org/#cors-request>
- [307] [CITE@en-US[Fetch Standard]] ([TIME[2014-06-30 12:53:29 +09:00]] 版) <http://fetch.spec.whatwg.org/#concept-http-network-or-cache-fetch>
- [125] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2012-02-22 20:11:59 +09:00]] 版) <http://www.whatwg.org/specs/web-apps/current-work/#fetch>
- [302] [CITE@en-US[Fetch Standard]] ([TIME[2014-06-30 12:53:29 +09:00]] 版) <http://fetch.spec.whatwg.org/#forbidden-header-name>
]REFS]
* 文脈
[296] [[要求メソッド]]が [CODE[GET]] でも [CODE[HEAD]] でも''ない''[[要求]]や、
[[WebSocket接続の確立]]の[[要求]]、
[[CORS]] を使った他の[[起源]]への[[要求]]に含まれます [SRC[>>290]]。
;; [297] 互換性の問題からすべての[[要求]]には含まれません [SRC[>>290]]。
;; [42] [[プロキシ]]に接続するための [CODE[CONNECT]] には含まれません。
[298] [[Webブラウザー]]など[[同一起源ポリシー]]で管理された[[クライアント]]からの[[要求]]には [CODE(HTTP)@en[[[Origin:]]]] [[ヘッダー]]が含まれますが、
それ以外の[[要求]]には普通は [CODE(HTTP)@en[[[Origin:]]]] [[ヘッダー]]は含まれません。
[HISTORY[
[308] [[fetch]] において、[DFN[[RUBYB[[[[CODE[Origin]]ヘッダー省略フラグ]]]@en[omit-[CODE(HTTP)[Origin]]0header flag]]]]が未設定の時、
[[HTTP要求]]に [CODE(HTTP)@en[[[Origin:]]]] [[ヘッダー]]が設定されます [SRC[>>307]]。
;; [28] 初期値は未設定です [SRC[>>306]]。
]HISTORY]
* 構文
[299] [[欄値]]は、 [[起源]]または [CODE[[[null]]]] です [SRC[>>290]]。
[300] [[起源]]は、[[URL scheme]]、[CODE(URI)[://]]、[[ホスト]]、
[CODE[[[:]]]]、[[ポート]]で構成され ([CODE[[[:]]]] 以降は省略可能) [SRC[>>290]]、
[[起源]]の[[ASCII直列化]]を表します。
[301] [CODE[[[null]]]] は、[[三項組]]で表されない[[起源]]を表します。
[[小文字]]でなければなりません。
[FIG(railroad)[
= |
== =
=== [[URL scheme]]
=== [CODE(URI)[://]]
=== [[ホスト]]
=== ?
==== [CODE[[[:]]]]
==== [[ポート]]
== [CODE(URI)[[[null]]]]
]FIG]
[113] [[利用者エージェント]]は任意の[[要求]]に [CODE(HTTP)@en[[[Origin:]]]] 欄を含めて[['''構いません''']]。
[SRC[>>21]]
[114] 一つの[[要求]]に複数の [CODE(HTTP)@en[[[Origin:]]]] 欄を含めては[['''なりません''']]。
[SRC[>>21]]
;; [115] 複数含まれている場合に[[鯖]]がどう解釈するべきかは規定されていません。
* [CODE(HTTP)[null]]
[117] 値 [CODE(HTTP)[[[null]]]] は[[3項組]]で表せない[[起源]]である時に使われます。
;; [116] [[RFC 6454]] は、「[RUBYB[[[プライバシー]]重視]@en[privacy-sensitive]]」な文脈では値 [DFN[[CODE(HTTP)[[[null]]]]]]
を送信しなければ[['''ならない''']] [SRC[>>21]] としていました。
具体的に何が「[[プライバシー]]重視」な文脈かは
[CODE(HTTP)@en[[[Origin:]]]] 欄の仕様としては決めていませんが、
[[応用]]ごとに決めることもできます [SRC[>>21]]。
* 空文字列
[142] [[HTML]] の定義に従えば[[起源]]の[[ASCII直列化]]が[[空文字列]]になることもありますが、
その場合 [CODE(HTTP)@EN[[[Origin:]]]] の値をどうするべきかは不明確です。
[196] >>195 によれば [[Firefox]] では[[空文字列]]が [CODE[[[null]]]] の変わりに使われることになっています。
古い仕様ではそうだったのかもしれません。
[REFS[
- [195] [CITE@en[HTTP access control - MDN]] ([TIME[2012-02-29 23:20:44 +09:00]] 版) <https://developer.mozilla.org/en/http_access_control#Origin>
]REFS]
* 処理
** CSRF 対策
[37] [[サーバー]]は、 [[CSRF]] 対策のためにこの[[ヘッダー]]を使うことができます。
[38] [CODE(HTTP)@en[Origin:]] [[ヘッダー]]の値が[[サーバー]]の想定する[[起源]]でなければ、
不当な[[起源]]からの[[要求]]であり、 [[CSRF]] 攻撃のおそれがありますから、
[[要求]]を拒否することとできます。
** CORS
[36] [[サーバー]]は、 [[CORS]] のためにこの[[ヘッダー]]を使うことができます。
[HISTORY[
[119] [[RFC 6454]] では[[鯖]]による解釈の方法は特に規定されていませんでした。
]HISTORY]
[214] [[CORS]] では別[[起源]]への[[要求]]に対する[[鯖]] ([[資源]]) での処理モデルが規定されており、
その中で [CODE(HTTP)@en[[[Origin:]]]] の処理方法も規定されています。 [CODE(HTTP)@en[[[Origin:]]]]
に関する部分だけを抜き出すと、次の通りです。
- [215] [CODE(HTTP)@en[[[Origin:]]]] 欄がなければ、 [[CORS]] 処理モデルの適用範囲''外''です。 [SRC[>>213]]
- [216] [CODE(HTTP)@en[[[Origin:]]]] 欄の値は、
-- [218] [[cross-origin request]]/[[actual request]] では [CODE(char)[[[U+0020]]]] [CODE(charname)@en[[[SPACE]]]]
で分割し、得られたそれぞれの値が[[大文字・小文字不区別]]で想定している[[起源]]と一致するかを判定します。 [SRC[>>213]]
-- [220] [[preflight request]] では値を直接[[大文字・小文字不区別]]で想定している[[起源]]と一致するかを判定します。
([[preflight request]] は[[リダイレクト]]に対応していないので、常に値が1つと想定しています。) [SRC[>>213, >>221]]
-- [219] なお、ここでいう想定している[[起源]]は有限のリストである必要はありません。
- [217] [[応答]]の [CODE(HTTP)@en[[[Access-Control-Allow-Origin:]]]] 欄には [CODE(HTTP)@en[[[Origin:]]]]
欄の値をそのまま使うことができます。 [SRC[>>213]]
** DNS による攻撃
[210] [[鯖]]側では [CODE(HTTP)@en[[[Origin:]]]] が[[要求]]元として適切な[[起源]]かどうかチェックすることになりますが、
[CODE(HTTP)@en[[[Host:]]]] をチェックしておかないと攻撃者が不正な[[ドメイン名]]を当該[[鯖]]に結びつけることで意図せぬ[[要求]]を受理させることができるとされています。
[EG[
[211] 例えば [CODE[corp.example]] と [CODE[corp.invalid]] があるとします。 [CODE[corp.example]]
が [CODE[corp.example]] に [[cross-origin request]] を行い、 [CODE(HTTP)@en[[[Origin:]] corp.example]]
と送ります。この時 [CODE[corp.invalid]] または[[ネットワーク]]が不正にこの[[要求]]を
[CODE[corp.example]] に送りつけさせることができます。すると [CODE[corp.example]] は自身からの[[要求]]を (意図せず)
受け取ることになります。 [CODE[corp.example]] 側で [CODE(HTTP)@en[[[Host:]]]]
をチェックすれば、[[利用者エージェント]]が本当は [CODE[corp.invalid]] に宛てて送ろうとしていたことを認識でき、
不適切な[[要求]]として処理できます。 ([[cross-origin request]] には [[HTTPS]] のような安全な接続を使うとより安全になります。)
[SRC[>>212 4.]]
]EG]
* 歴史
[22] 例によって [[W3C]] や [[IETF]] で政治的なごたごたに巻き込まれて必要以上に長くかかっています。
[[RFC]] になるよりずっと先に [[Webブラウザー]]で実装が進みました。
[1]
[CITE[Cross-Site Request Forgery]] ([TIME[2008-07-11 00:28:05 +09:00]] 版) <http://crypto.stanford.edu/websec/csrf/>
[2]
[CITE[Origin Header for CSRF Mitigation]] ([TIME[2008-11-30 15:01:02 +09:00]] 版) <http://crypto.stanford.edu/websec/specs/origin-header/>
[3]
[[HTML5]] の[[ナビゲーション]]の[[算法]]に組み込まれたみたいです。。。
[4] [CITE@en[(X)HTML5 Tracking]] ([TIME[2009-01-15 07:15:24 +09:00]] 版) <http://html5.org/tools/web-apps-tracker?from=2668&to=2669>
[5] [CITE@en[ACTION-96: Origin removal]] ([[Henri Sivonen]] 著, [TIME[2009-01-19 08:33:27 +09:00]] 版) <http://lists.w3.org/Archives/Public/public-html/2009Jan/0210.html>
** IETF
[6] [CITE@en[draft-abarth-origin-00 - The HTTP Origin Header]] ([TIME[2009-01-22 10:33:27 +09:00]] 版) <http://tools.ietf.org/html/draft-abarth-origin-00>
[7] [CITE@en[(X)HTML5 Tracking]]
([TIME[2009-09-29 23:36:58 +09:00]] 版)
<http://html5.org/tools/web-apps-tracker?from=4010&to=4011>
[8] [CITE[IRC logs: freenode / #whatwg / 20090821]]
([TIME[2009-10-12 19:18:16 +09:00]] 版)
<http://krijnhoetmer.nl/irc-logs/whatwg/20090821#l-235>
[9] [CITE@en[Security/Origin - MozillaWiki]]
([TIME[2009-10-09 22:03:56 +09:00]] 版)
<https://wiki.mozilla.org/Security/Origin>
[20] [CITE@en[The HTTP Sec-From Header]] draft-abarth-origin-01 の頃は
[DFN[[CODE(HTTP)@en[[[Sec-From:]]]]]]
という名前が提案されていました。
[10] [CITE[IRC logs: freenode / #whatwg / 20090929]]
([TIME[2009-12-02 08:29:55 +09:00]] 版)
<http://krijnhoetmer.nl/irc-logs/whatwg/20090929>
[11] [CITE[IRC logs: freenode / #whatwg / 20091002]]
([TIME[2009-12-04 00:35:25 +09:00]] 版)
<http://krijnhoetmer.nl/irc-logs/whatwg/20091002#l-620>
[12] [CITE[IRC logs: freenode / #whatwg / 20091204]]
([TIME[2009-12-27 16:46:13 +09:00]] 版)
<http://krijnhoetmer.nl/irc-logs/whatwg/20091204#l-293>
[13] [CITE@en[Security/Origin - MozillaWiki]]
([TIME[2010-10-06 06:03:55 +09:00]] 版)
<https://wiki.mozilla.org/Security/Origin>
[14] [CITE[IRC logs: freenode / #whatwg / 20101109]]
( ([TIME[2010-11-18 23:22:34 +09:00]] 版))
<http://krijnhoetmer.nl/irc-logs/whatwg/20101109#l-206>
[15] [CITE[drafts/origin.xml at master from abarth's ietf-websec - GitHub]]
( ([TIME[2011-02-13 13:01:41 +09:00]] 版))
<https://github.com/abarth/ietf-websec/blob/master/drafts/origin.xml>
[16] [CITE[IRC logs: freenode / #whatwg / 20110815]]
( ([TIME[2011-08-27 15:22:54 +09:00]] 版))
<http://krijnhoetmer.nl/irc-logs/whatwg/20110815#l-134>
[17] [CITE[IRC logs: freenode / #whatwg / 20111022]]
( ([TIME[2011-10-23 18:08:47 +09:00]] 版))
<http://krijnhoetmer.nl/irc-logs/whatwg/20111022>
[REFS[
- [21] '''[CITE@en[RFC 6454 - The Web Origin Concept]] ([TIME[2011-12-12 09:13:37 +09:00]] 版) <http://tools.ietf.org/html/rfc6454#section-7>'''
]REFS]
[107] [CODE(HTTP)@en[[[Origin:]]]] 欄の構文は次のように定義されていました [SRC[>>21]]。
[FIG[
[PRE(ABNF code)[
origin = "Origin:" [[OWS]] origin-list-or-null [[OWS]]
origin-list-or-null = %x6E %x75 %x6C %x6C / origin-list
origin-list = serialized-origin *( SP serialized-origin )
serialized-origin = [[scheme]] "://" [[host]] [ ":" [[port]] ]
; <[[scheme]]>, <[[host]]>, <[[port]]> from [[RFC 3986]]
]PRE]
]FIG]
[108] [[RFC 6454]] は、 [CODE(char)[[[SP]]]] 区切りのリストで複数の値を指定できるとしていました
[SRC[>>21]]。
[110] [[要求]]がなされるまでに複数の[[起源]]が関わっている場合、
それをすべて列挙して[['''構わない''']] [SRC[>>21]] とされていました。
[EG[
[111] 例えば[[リダイレクト]]が発生した時、大元の[[起源]]と[[リダイレクト]]を行った[[起源]]を列挙して構いません。
]EG]
[112] しかし列挙の順序や[[鯖]]による解釈の方法については特に規定されていませんでした。
[118] 隣接する[[起源]]が[RUBYB[同じ]@en[identical]]であっては[['''なりません''']]。
そうなってしまう場合は片方だけ送信しなければ[['''なりません''']]。 [SRC[>>21]]
[191] [[fetch]] (>>126) の定義においては[[リダイレクト]]の際に複数の値を [CODE(HTTP)@en[[[Origin:]]]]
を入れることは認められていません。ただし明示的に禁じられているわけではなく、
自然に読むと複数にはならないというだけなので、実際には禁止する意図は無いかもしれません。
[222] [[CORS]] (>>213) でも[[鯖]]側の処理モデルにおいて、
[[リダイレクト]]の時に複数の値が指定され得ることに言及はされているのですが、
[[利用者エージェント]]側の処理モデル上はそうなる場合が記述されていません。
[126] [[fetch]] 操作においては、[[起源]]が呼び出し元により明示された場合、
それを [CODE(HTTP)@en[[[Origin:]]]] に使います。そうでない場合は「[[プライバシー]]重視」
な文脈として扱います。 [SRC[>>125]]
[190] [[HTML]] や [[XHR]] の仕様上定義されたあらゆる [[HTTP]] [[要求]]は [[fetch]]
操作経由で発行されるので、従ってこれを実装している[[Webブラウザー]]からのあらゆる [[HTTP]]
[[要求]]は何らかの [CODE(HTTP)@en[[[Origin:]]]] 欄を送出し得ることになります。
しかしよく読むといつ [CODE(HTTP)@en[[[Origin:]]]] 欄を送出するべきかは [[RFC]] も
[[HTML]] も [[XHR]] も規定していません。明示的な[[起源]]の指定無しに [[fetch]]
が呼び出された時は [[null]] を送信しなければならない (>>126 + >>116) ということになっていますが、
これも無条件に送信することを強制する意図があるのかは怪しいです。
[193] 実際の [[Webブラウザー]]は[[フォーム]]の[[提出]]や [[XHR]] などで [CODE(HTTP)@en[[[Origin:]]]]
を送出しますが、通常の[[文書]]の [[navigation]] などでは送出しないものもあります。
[18] [CITE@en[Web Applications 1.0 r6941 Drop old origin definitions that no longer matter.]]
( ([TIME[2012-01-31 09:48:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=6940&to=6941>
[19] [CITE[Widget Access Request Policy]]
( ([TIME[2012-02-04 04:00:27 +09:00]] 版))
<http://dev.w3.org/2006/waf/widgets-access/#dfn-origin>
[192] [CITE[Origin Header Proposal]]
( ([TIME[2011-12-28 22:11:55 +09:00]] 版))
<http://people.mozilla.org/~bsterne/content-security-policy/origin-header-proposal.html>
[194] [CITE[446344 – Implement Origin header CSRF mitigation]]
( ([TIME[2012-02-29 23:10:51 +09:00]] 版))
<https://bugzilla.mozilla.org/show_bug.cgi?id=446344>
[197] [CITE[Chromium Blog: Security in Depth: New Security Features]]
( ([TIME[2012-02-29 23:04:56 +09:00]] 版))
<http://blog.chromium.org/2010/01/security-in-depth-new-security-features.html>
[198] [CITE[Scheme/Host/Port: RFC 6454 and RFC 6455]]
( ([TIME[2012-02-16 12:42:54 +09:00]] 版))
<http://www.schemehostport.com/2011/12/rfc-6454-and-rfc-6465.html>
[199] [CITE[javascript - Force Safari to include Origin header in jQuery GET request - Stack Overflow]]
( ([TIME[2012-02-29 23:34:42 +09:00]] 版))
<http://stackoverflow.com/questions/6417219/force-safari-to-include-origin-header-in-jquery-get-request>
[204] [CITE@en-us[AJAX - Introducing Cross-domain Request (XDR)]]
( ([TIME[2012-02-29 23:41:40 +09:00]] 版))
<http://msdn.microsoft.com/en-us/library/ie/dd573303(v=vs.85).aspx>
[295] [[CORS]] における [CODE(HTTP)@en[[[Origin:]]]] [[ヘッダー]]の利用については、
[[CORS]] 仕様書に規定がありました。
[REFS[
- [213] [CITE@en-US[Cross-Origin Resource Sharing]] ([TIME[2012-03-03 09:26:46 +09:00]] 版) <http://dvcs.w3.org/hg/cors/raw-file/tip/Overview.html#resource-processing-model>
- [221] [CITE@en-US[Cross-Origin Resource Sharing]] ([TIME[2012-03-03 09:39:38 +09:00]] 版) <http://dvcs.w3.org/hg/cors/raw-file/tip/Overview.html#resource-sharing-check-0>
- [212] [CITE@en-US[Cross-Origin Resource Sharing]] ([TIME[2012-03-03 07:13:53 +09:00]] 版) <http://dvcs.w3.org/hg/cors/raw-file/tip/Overview.html#security>
]REFS]
[303] [[著者]]が直接 [CODE(HTTP)@en[[[Origin:]]]] を指定することは、 [[XHR]]
で禁じられていました [SRC[>>123]]。
;; [304] 現在では [[Fetch Standard]] で禁じられています [SRC[>>302]]。
[REFS[
- [123] [CITE@en-US[XMLHttpRequest]] ([TIME[2012-02-28 13:24:26 +09:00]] 版) <http://dvcs.w3.org/hg/xhr/raw-file/tip/Overview.html#dom-xmlhttprequest-setrequestheader>
]REFS]
** WHATWG
[291] [[IETF]] の [[RFC 6454]] の [CODE(HTTP)@en[[[Origin:]]]] の定義は実際の
[[Webブラウザー]]の実装と異なっていましたが、 [[IETF]] では手続き上改訂が難しい状況でした。
[292] [[Anne]] は、 [[WHATWG]] [[Fetch Standard]] において [[RFC 6454]]
を参照しつつもより正確な定義を含めました [SRC[>>290]]。
[293] 2014年6月には [[URL Standard]] に [[URL]] の[[起源]]が追加され、
[[HTML Standard]]、[[URL Standard]]、[[Fetch Standard]] の3つの文書によって事実上 [[RFC 6454]]
は廃止されました [SRC[>>310, >>311]]。
[REFS[
- [311] [CITE[Define URL's origin · c65766a · whatwg/url]] ([TIME[2014-07-01 04:50:13 +09:00]] 版) <https://github.com/whatwg/url/commit/c65766a674c6f4c3c521b6dc843f07c1fd23b4d2>
- [310] [CITE[Fix origin xref mess; obsolete ORIGIN · d94f125 · whatwg/fetch]] ([TIME[2014-07-01 04:49:04 +09:00]] 版) <https://github.com/whatwg/fetch/commit/d94f125e97592c078e023d5490b65b4210ebe8dc>
]REFS]
;; [294] 詳しくは[[起源]]の歴史の項を参照してください。
* 実装
[205] [CODE(HTTP)@en[[[Origin:]]]] はまだ十分 [[interoperable]] に実装されていません。
別の[[起源]]への [[XHR]]+[[CORS]] [[POST]] では [[Chrome]] も [[Firefox]]
も [CODE(HTTP)@en[[[Origin:]]]] を送りますし、 [[XDR]] では [[IE]]
も送りますが、[[フォーム]]の [[POST]] で送るのは [[WebKit]] だけです。
また、同じ[[起源]]の時に送るのも [[Chrome]] だけです。 [TIME[2012-03-01T14:14:48.300Z]]
[289] [[Chrome]] は [[POST]] したページを再読み込みした時に [CODE(HTTP)@en[[[Origin:]]]] を送らない(?)ようです。 [TIME[2014-04-25T11:19:32.000Z]]
* 関連
[124] [CODE(HTTP)@en[[[Origin:]]]] を [CODE(DOMi)@en[[[XMLHttpRequest]]]]
などで[[著者]]が指定することはできません [SRC[>>123, >>302]]。
[305] [CODE(HTTP)@en[[[Origin:]]]] が指定された [[HTTP要求]]を、
[[CORS要求]]といいます [SRC[>>306]]。
[309] [CITE@en[RFC 6454 - The Web Origin Concept]]
( ([TIME[2014-06-22 05:12:22 +09:00]] 版))
<http://tools.ietf.org/html/rfc6454>
[312] ( ([TIME[2011-07-16 05:29:36 +09:00]] 版))
<http://www.iana.org/assignments/message-headers/prov/access-control-allow-credentials>
[23] [[Chrome]] 40 になって、 [CODE(HTML)@en[[[<meta name=referrer>]]]]
で [CODE(HTTP)@en[[[never]]]] や [CODE(HTTP)@en[[[origin-when-crossorigin]]]] を指定すると
[CODE(HTTP)@en[[[Origin:]] [[null]]]] が送られるようになったみたいです。 [TIME[2015-01-29T10:01:03.00Z]]
[24] [CITE@en[Web Applications 1.0 r4011 Synchronise with the latest Origin spec rules and semantics.]]
([TIME[2009-09-29 08:51:00 +09:00]] 版)
<https://html5.org/r/4011>
[25] [CITE@en[Web Applications 1.0 r2525 CSRF mitigation -- add Origin header to all non-GET requests.]]
([TIME[2008-12-02 20:26:00 +09:00]] 版)
<https://html5.org/r/2525>
[27] [CITE@en[Fix #91: rename force-Origin-header flag to omit-Origin; unset it whe… · whatwg/fetch@dfb8bff]]
([TIME[2015-09-08 15:06:31 +09:00]] 版)
<https://github.com/whatwg/fetch/commit/dfb8bff8fd180009a549527220c304f098c932ed>
[29] [CITE@en[force-Origin-header flag set for no-cors requests · Issue #91 · whatwg/fetch]]
([TIME[2015-09-08 15:10:59 +09:00]] 版)
<https://github.com/whatwg/fetch/issues/91>
[30] [CITE@en[Align with Fetch: force-Origin-header flag is now omit-Origin-header … · whatwg/xhr@bb19040]]
([TIME[2015-09-08 15:13:25 +09:00]] 版)
<https://github.com/whatwg/xhr/commit/bb19040865164a76a313b27dca1fcb21849b852a>
[31] [CITE@en[remove force-origin flag · w3c/beacon@5f1a2e7]]
([TIME[2015-12-16 12:35:23 +09:00]] 版)
<https://github.com/w3c/beacon/commit/5f1a2e7e9250ef7cce4b1222d8b87661110d8578>
[32] [CITE@en[Re: ''''''[''''''referrer'''''']'''''' Should referrer policy change value of the Origin header?]]
([[Mike West]] 著, [TIME[2016-02-02 15:45:42 +09:00]] 版)
<https://lists.w3.org/Archives/Public/public-webappsec/2016Feb/0006.html>
[33] [CITE@en[Should we send an Origin header for no-cors fetches? · Issue #225 · whatwg/fetch]]
( ([TIME[2016-05-17 13:12:19 +09:00]]))
<https://github.com/whatwg/fetch/issues/225>
[34] [CITE@en[Consider setting omit-Origin-header-flag for same origin requests · Issue #31 · whatwg/xhr]]
( ([TIME[2016-05-17 13:13:53 +09:00]]))
<https://github.com/whatwg/xhr/issues/31>
[35] [CITE@en[1272302 – navigator.sendBeacon doesn't set Origin header for same-origin request]]
( ([TIME[2016-05-17 13:14:45 +09:00]]))
<https://bugzilla.mozilla.org/show_bug.cgi?id=1272302>
[39] [CITE@en[Remove request's omit-Origin-header flag]]
([[annevk]]著, [TIME[2016-12-09 16:37:16 +09:00]])
<https://github.com/whatwg/fetch/commit/eb89fcd54bb39e81b11c569f6ad7ba615883f7b9>
[40] [CITE@en[Fetch: remove omit-Origin-header flag]]
([[annevk]]著, [TIME[2016-12-08 03:56:35 +09:00]])
<https://github.com/whatwg/html/commit/1d3dd5da311ce51eeaac027cb053cf482476099a>
[41] [CITE@en[Properly set the Origin header for WebSocket requests]]
([[nox]]著, [TIME[2017-03-27 20:35:48 +09:00]])
<https://github.com/whatwg/fetch/commit/406c5a60595c63d323693050b45d40823933e185>
[26] [CITE@en[IETF HTML5 Meeting March 2009 - W3C Wiki]]
([TIME[2018-04-21 13:28:11 +09:00]])
<https://www.w3.org/wiki/IETF_HTML5_Meeting_March_2009>
[43] [CITE@en[Fix Origin header and "no-cors" redirects behavior]]
([[annevk]]著, [TIME[2018-05-28 18:17:18 +09:00]])
<https://github.com/whatwg/fetch/commit/af45ce34d6943c2a31cfa1d306d6db3b24682634>
[44] [CITE@en["no-cors" POST and 307/308 redirects · Issue #593 · whatwg/fetch]]
([TIME[2018-06-01 01:01:17 +09:00]])
<https://github.com/whatwg/fetch/issues/593>
[45] [CITE@en[Avoid using the CORS flag to reset request's origin in redirects by annevk · Pull Request #594 · whatwg/fetch]]
([TIME[2018-06-01 01:01:59 +09:00]])
<https://github.com/whatwg/fetch/pull/594>