/
686.txt
436 lines (333 loc) · 24.4 KB
/
686.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
424
425
426
427
428
429
430
431
432
433
434
435
436
[18] [DFN[[RUBYB[[[ダウンロード]]]@en[download]]]]は、
[[クライアント]]が[[サーバー]]から受信する操作をいいます。
多くの場合、[[クライアント]]側の[[ファイルシステム]]等の[[データベース]]に保存する操作までを含めて[[ダウンロード]]といいます。
;; [19] 受信したデータをその場で表示したり、[[ストリーミング]]再生したりする操作も[[ネットワーク]]からのデータ受信のみに着目すれば[[ダウンロード]]ですが、
[[利用者]]が意図的に[[ファイル]]として保存しないため、
[[利用者]]の視点では[[ダウンロード]]ではありません。
* 仕様書
[REFS[
- [28] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2016-04-09 09:15:24 +09:00]] 版) <https://html.spec.whatwg.org/#attr-hyperlink-download>
- [40] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2016-04-09 09:15:24 +09:00]] 版) <https://html.spec.whatwg.org/#as-a-download>
]REFS]
* プロトコル
[20] [[HTTP]] や [[FTP]] が[[ファイル]]転送に使われます。
[21] 次のような[[プロトコル要素]]や[[アルゴリズム]]があります。
[FIG(middle list)[
- [CODE(DOMa)@en[[[download]]]] [[属性]] ([[HTML]])
- [[ハイパーリンクのダウンロード]]
- [CODE(HTTP)@en[[[Content-Disposition:]] [[attachment]]]]
- [[証明書ダウンロード]]
- [[navigate]]
]FIG]
* 保存
[13] 多くの [[Webブラウザー]]は、 [[navigate]] 時の[[ダウンロード]]の他に、
表示中の[[文書]]の保存や、[[画像]]、[[媒体]]等の保存の機能を提供しています。
[14] [[文書]]の保存は、元の [[HTML]] の保存だけでなく、表示中の[[文書]]の直列化や、
表示中の[[文書]]とそれに埋め込まれている[[画像]]や [[CSS]] 等の一式の保存、
[[平文]]化して保存といった機能が提供されていることがあります。
[15] 「Web ページ、完全」で保存すると、 [[Chrome]] と [[Firefox]]
の場合は[[拡張子]]以外のファイル名 +
[CODE[_files]]、 [[IE]] の場合は拡張子以外のファイル名 + [CODE[.files]]
という名前の[[フォルダー]]が作られ、その中に[[画像]]等のファイルが保存されます。
;; [16] [[Windows]] の[[エクスプローラー]]は本体ファイルを削除するとこの[[フォルダー]]も同時に削除します。
[17] [[IE]] は [[MHT]] 形式での保存にも対応しています。この形式では[[画像]]等もまとめて1つのファイルになります。
* ダウンロード
[39] [[fetch]] の結果の[VAR[応答]]を[DFN[[RUBYB[[[ダウンロード]]として]@en[as a download]]]]処理するとは、
[VAR[起源]]と[VAR[提案ファイル名]]や[VAR[イベント]]について、
次のようにする[SHOULD[べきです]] [SRC[>>40]]。
[FIG(steps)[
= [41] [VAR[応答]]が失敗なら、
== [42] [[利用者]]に問題を報告します。
= [43] それ以外なら、
== [44] [[利用者]]に対して、[VAR[応答]]を保存する手段を提供します。
]FIG]
[45] 一般的な[[Webブラウザー]]は、 [[fetch]] 開始直後、または[[応答ヘッダー]]受信時点で、
[[利用者]]に[[ファイル名]]を尋ねる[[ダイアログ]]を表示します。
あるいは実装と設定によっては、[[ダイアログ]]なしで[[ダウンロード]]用の[[ディレクトリー]]に自動的に保存します。
[46] [[利用者エージェント]]は、[[ファイル名]]が必要な場合、
次のように決定する[SHOULD[べきです]]。
この手順は信頼できないサイトからの[[ダウンロード]]の危険性を緩和しようとするものですから、
[[利用者エージェント]]はこれに従うことが[RUBYB[強く推奨]@en[strongly urged]]されています。
[SRC[>>40]]
[FIG(steps)[
= [47] [VAR[ファイル名]]を、 [[null]] に設定します。
= [68] [VAR[CD]] を、[VAR[応答]]の[F[ヘッダーリスト]]に [CODE(HTTP)@en[Content-Disposition]]
[[ヘッダー]]に設定します。
= [69] [VAR[CD]] が [[null]] でなければ、
== [67] [VAR[配置型]]を [VAR[CD]] の[F[配置型]]に設定します。
== [60] [VAR[HTTPファイル名]]を、 [VAR[CD]] の [CODE(MIME)@en[filename]] の値に設定します。
= [70] それ以外なら、
== [71] [VAR[配置型]]を、 [[null]] に設定します。
== [72] [VAR[HTTPファイル名]]を、 [[null]] に設定します。
= [48] [VAR[配置型]]が [CODE(MIME)@en[attachment]] で、
[VAR[HTTPファイル名]]が [[null]] でなければ、
== [49] [VAR[ファイル名]]を、[VAR[HTTPファイル名]]に設定します。
= [50] それ以外なら、
== [55] [VAR[起源]]が [[null]] なら、
=== [56] [VAR[信頼された操作]]を、[[真]]に設定します。
== [57] それ以外なら、
=== [52] [VAR[応答]]の[F[URL][応答のURL]]の[F[scheme][URL scheme]]が [CODE(URI)@en[data][data:]]
なら、
@@ かつ[[リダイレクト]]以外の場合?
==== [53] [VAR[資源の起源]]を、[VAR[起源]]に設定します。
=== [54] それ以外なら、
==== [51] [VAR[資源の起源]]を、[VAR[応答]]の[F[URL][応答のURL]]の[F[起源][URLの起源]]に設定します。
=== [58] [VAR[信頼された操作]]を、
[VAR[起源]]と[VAR[資源の起源]]が[[同じ起源]]かどうかに設定します。
== [59] [VAR[信頼された操作]]が[[真]]で、[VAR[HTTPファイル名]]が [[null]]
でなければ、
=== [61] [VAR[ファイル名]]を、[VAR[HTTPファイル名]]に設定します。
== [62] それ以外なら、
=== [64] [VAR[信頼された操作]]が[[真]]か、[VAR[配置型]]が [CODE(MIME)@en[attachment]] なら、
==== [73] [VAR[ファイル名]]を、[VAR[提案ファイル名]]に設定します。
=== [63] [VAR[ファイル名]]が [[null]] なら、
==== [65] [VAR[信頼された操作]]が[[真]]か、[VAR[イベント]]が[[利用者]]の[[ダウンロード]]の指示があったことを示していれば、
===== [66] [VAR[ファイル名]]を、[VAR[応答]]の[F[URL][応答のURL]]から[[利用者エージェント]]依存の方法で決定した値に設定します。
==== [74] それ以外なら、
===== [75] [[利用者エージェント]]依存の方法で、[[利用者]]を保護するための手段を講じます。
[[著者]]が異なる[[起源]]の[[資源]]を[[利用者]]に[[ダウンロード]]させようとしていますが、
[[著者]]に悪意があって[[利用者]]を騙そうとしている場合もあります。
ここで停止して構いません。
===== [76] [VAR[ファイル名]]を、[[利用者エージェント]]依存の方法で決定した値に設定します。
([[利用者]]に決めさせたものでも構いません。)
= [78] [[利用者]]に[[ダイアログ]]を表示するなどして、
[VAR[ファイル名]]を編集させて構いません。
= [79] [[ファイルシステム]]の制約に合わせて、[VAR[ファイル名]]を調整します。
= [80] [[プラットフォーム][プラットフォーム (Web)]]が[[拡張子]]を使ってファイルの種別を判断するなら、
== [81] [VAR[資源の型]]を、 [VAR[応答]]の [F[Content-Typeメタデータ]]に設定します。
== [82] [VAR[名前の型]]を、[VAR[ファイル名]]の[F[拡張子]]から判断した型に設定します。
== [83] [VAR[資源の型]]と[VAR[名前の型]]が同じか、
[VAR[名前の型]]が[[利用者]]の意図に沿うもの (例えば[VAR[ファイル名]]の一部として[[利用者]]が明示的に指定したもの) かのどちらでもないなら、
=== [84] [VAR[資源の型]]の[[拡張子]]がわかるなら、
==== [85] [VAR[ファイル名]]を変更して、[VAR[資源の型]]の[[拡張子]]とします。
=== [86] それ以外で、[VAR[名前の型]]が危険なもの
([[実行可能ファイル]]、[[シェルスクリプト]]など) なら、
==== [87] [VAR[ファイル名]]に安全とわかっている[[拡張子]] ([CODE[.txt]] など)
を付加して構いません。
= [88] [VAR[ファイル名]]を返します。
]FIG]
[89] 保存'''先'''の決定には、[[著者]]側から提供された情報 ([VAR[HTTPファイル名]]や[VAR[提案ファイル名]]や[VAR[応答]]の[F[URL][応答のURL]]) を使う[SHOULD[べきではありません]]
[SRC[>>40]]。
[77] [[ダウンロード]]の処理は、
[[ハイパーリンクのダウンロード]]により、または[[navigate]]により、
呼び出されます。
[90] [[Webブラウザー]]によっては、[[利用者]]を保護するため、
[[ダウンロード]]したのが[[ウイルス]]その他危険な[[ファイル]]でないかを検査します。
[[Safe Browsing]] を使う実装もあります。
[92] 保存の具体的な動作は、[[プラットフォーム]]や[[Webブラウザー]]の制約や実装方針によって異なります。
例えば、次のように動作する実装があります。
[FIG(list)[
- [93] 保存中は[[利用者]]が指定した名前 + 適当な[[拡張子]]等を付けた別の[[ファイル名]]の[[ファイル]]とし、
保存が完了したら指定された名前に変更する。
- [94] 保存中は[[ファイル]]を[[ロック]]した状態で開いており、他の[[プロセス]]から操作できなくする。
]FIG]
[95] [[ダウンロード]]の進行中は、 [[ダウンロードマネージャー]]その他の
[[Webブラウザー]]の [[UI]] によって、そのことや進捗が[[利用者]]に提示されるのが一般的です。
[96] [[ダウンロード]]の進行中に、[[利用者]]が[[ダウンロード]]を中断、すなわち [[fetch]] を [[abort]]
できるのが普通です。
[97] [[利用者]]の指示により、または[[ネットワーク]]状況その他の理由により [[fetch]]
が中断されエラー終了した場合は、[[ダウンロード]]全体もまたエラー終了として扱う必要があります。
[[Webブラウザー]]依存の方法により、失敗であることやその状況を[[利用者]]に報告したり、
必要に応じて一時ファイルを削除したりする必要があります。
[101] [VAR[応答]]の [CODE(HTTP)@en[Last-Modified:]] [[ヘッダー]]で[[日時]]が設定されていれば、
これを[[ファイル]]の[[日時]]として使うべきと考えられます。設定されていないときや、
[[ファイルシステム]]の[[日時]]表現の範囲外の場合、
[[利用者]]の[[設定]]により特に望まれたときなどは、[[現在時刻]]に設定するべきと考えられます。
;; [102] [[ファイルシステム]]が認める[[日時]]の範囲内である限り、
[[ファイル]]の[[日時]]が原因で[[セキュリティー]]問題になることは中々考えにくいですが、
慎重を期すなら、[[現在時刻]]から何十年も前の[[日時]]や数年以上先の[[日時]]なら、
不正な指定として無視するべきとの考えもあるかもしれません。
[104] [[プラットフォーム]]によっては、
[[インターネット]]から入手した信頼できない[[ファイル]]を表す属性が[[ファイルシステム]]に存在することがあり、
[[Webブラウザー]]も適切に設定することが期待されています。
例えば [[Windows]] ([[NTFS]]) では [CODE[ZoneId]] を設定することが期待されます。
* ヘルパーアプリケーション
[37] [[navigate]]、[[ヘルパーアプリケーション]]も参照。
* [CODE(HTMLe)@en[a]] 要素 [CODE(HTMLa)@en[download]] 属性
[29] [CODE(HTMLe)@en[a]] [[要素]]の [DFN[[CODE(HTMLa)@en[download]]]]
[[属性]]は、当該[[ハイパーリンク]]が[[ダウンロード]]のためのものであることを示します。
** 属性値
[30] 本[[属性]]を指定しないと、[[ダウンロード]]ではなく、
通常の[[ハイパーリンクをたどる]]操作が想定される既定の動作であることを表します。
[31] 本[[属性]]を指定すると、当該[[ハイパーリンク]]が[[資源]]の[[ダウンロード]]のために使われることを[[著者]]が意図していることを表します
[SRC[>>28]]。
[32] 本[[属性]]に値を指定すると、[[ダウンロード]]した[[資源]]を手元の[[ファイルシステム]]に保存する際に[[名札]]として使うべき[[ファイル名]]の既定値として[[著者]]が推奨する値を表します
[SRC[>>28]]。
[33] 値には、制約はありません [SRC[>>28]]。
しかし[[ファイルシステム]]や[[プラットフォーム]]の制約、
あるいは[[利用者]]の指示によって[[ファイル名]]は適宜修正されるものですから、
[[著者]]が指定した値がそのまま使われるわけではありません。
[[拡張子]]の有無なども特に規定されていません。
([[プラットフォーム]]に依存するので、[[利用者エージェント]]が[[利用者]]を適当に誘導するべき事項でしょう。)
[38]
[[ダウンロード]]して保存する先の[[ディレクトリー]] ([[フォルダー]])
を指定する方法はありません。
[[ディレクトリー]]の指定があっても、[[利用者エージェント]]は無視する[SHOULD[べき]]とされています。
** 処理
[34] [[ハイパーリンクのダウンロード]]を参照。
[35] 本[[属性]]は、[[ハイパーリンク]]の既定の動作を指定するものです。
[[利用者]]や[[利用者エージェント]]に[[ダウンロード]]を強制するものではありません。
[[文脈メニュー]]などを通して[[利用者]]が直接指示した場合は、
[[ダウンロード]]せずに[[ハイパーリンクをたどる]]こととなるかもしれません。
** 別ドメインからのダウンロード
[124]
[[Webブラウザー]]は[[同じ起源]]でない ([[cross-origin]]) [[リンク]]の [CODE[download][download=""]]
[[属性]]を完全に無視し、通常の [[navigate]] を実行します。
[SRC[>>121, >>122, >>134]]
[125]
ただし、
[CODE[data:]] [[URL]] へのリンクは[[ダウンロード]]になります。
[126]
他の[[ドメイン]]にあるファイルを[[ダウンロード]]させたいときは、
ファイルの[[応答ヘッダー]]で
[CODE[Content-Disposition: attachment]]
を指定しなければなりません。
-*-*-
[127] この挙動は本来の仕様に違反していますが、
[[セキュリティー]]のためとされ [SRC[>>123, >>122]]、
仕様の変更が提案されています [SRC[>>121]]。
* 法令との関係
[112] 本項の[[ダウンロード]]は、 [[Web]] における技術用語としての[[ダウンロード]]です。
これは各国の[[著作権]]等の[[法令]]や[[契約]]等における[[ダウンロード]]と必ずしも同じ意味ではありません。
* 歴史
[36] [CODE(HTMLa)@en[download]] [[属性]]は、需要を反映して、
[[HTML5]] で追加されました。
[1] [CITE@en[HTML5 Tracker]]
([TIME[2011-07-22 16:15:06 +09:00]] 版)
<http://html5.org/tools/web-apps-tracker?from=6317&to=6318>
[2] [CITE[''''''[''''''whatwg'''''']'''''' Forcing a download]]
( ([TIME[2011-07-22 23:58:54 +09:00]] 版))
<http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2011-July/032601.html>
[3] [CITE[''''''[''''''whatwg'''''']'''''' <a download> feedback]]
( ([TIME[2012-02-16 08:22:31 +09:00]] 版))
<http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2012-February/034880.html>
[4] [CITE['''['''whatwg''']''' <a download> feedback]]
([TIME[2012-06-08 11:28:51 +09:00]] 版)
<http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2012-June/036320.html>
[5] [CITE[WWW-Talk Jan-Mar 1993: binary file access via Mosaic]]
( ([TIME[2013-03-09 04:06:44 +09:00]] 版))
<http://1997.webhistory.org/www.lists/www-talk.1993q1/0258.html>
[6] [CITE@en[676619 – Implement proposed download attribute]]
( ([TIME[2013-03-18 08:55:15 +09:00]] 版))
<https://bugzilla.mozilla.org/show_bug.cgi?id=676619>
[7] [CITE@en[Web Applications 1.0 r7836 Fix <area> to match <a> in terms of security checking. Also, some editorial fixes.]]
( ([TIME[2013-04-16 04:11:00 +09:00]] 版))
<http://html5.org/tools/web-apps-tracker?from=7835&to=7836>
[8] [CITE[''''''[''''''whatwg'''''']'''''' Priority between <a download> and content-disposition]]
( ([TIME[2013-08-13 21:25:48 +09:00]] 版))
<http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-August/040445.html>
[9] [CITE[Add download context per https://www.w3.org/Bugs/Public/show_bug.cgi?id=... · 69dfdc3 · whatwg/fetch]]
( ([TIME[2014-05-20 09:03:48 +09:00]] 版))
<https://github.com/whatwg/fetch/commit/69dfdc385ff40d48c06fede66b28a6aedbc848b0>
[FIG(quote)[
[FIGCAPTION[
[10] [CITE@en[1030660 – Is ClearBogusContentEncodingIfNeeded() needed?]]
([TIME[2015-03-06 13:52:40 +09:00]] 版)
<https://bugzilla.mozilla.org/show_bug.cgi?id=1030660>
]FIGCAPTION]
> Note that specifically for the save-to-file behavior what we actually do is completely ignore the Content-Type when deciding whether to decode. We just compare the URI filename extension, if any, to the Content-Encoding. If the Content-Encoding matches the filename extension, we don't undo the content encoding; otherwise we undo it.
]FIG]
[11] [CITE@en[184971 – display MIME type of the server in download dialog and not the mime-type returned by windows registry]]
([TIME[2015-04-11 22:35:21 +09:00]] 版)
<https://bugzilla.mozilla.org/show_bug.cgi?id=184971>
* 実装
[12] 最近の [[Webブラウザー]]には、[[ダウンロード]]したファイルのセキュリティー検査を自動的に行うものもあります。
[FIG(quote)[
[FIGCAPTION[
[22] [CITE[Web Security Context: User Interface Guidelines]]
([TIME[2010-08-04 20:09:50 +09:00]] 版)
<http://www.w3.org/TR/wsc-ui/#robustness-software-install>
]FIGCAPTION]
> Web user agents MUST NOT expose programming interfaces which permit installation of software without a user intervention.
> User agents MUST inform the user and request consent when the user agent is attempting to install software outside of the agent environment as a result of web content. The interaction used MUST follow the requirements in 6.4.2 Warning/Caution Messages . User agents SHOULD NOT provide features which can be used by web content to install software outside of the agent environment without the user's consent.
]FIG]
[23] [CITE@en[Integrate Fetch into HTML · whatwg/html@7c5555a]]
([TIME[2015-09-18 18:48:38 +09:00]] 版)
<https://github.com/whatwg/html/commit/7c5555a16f2920c02244c10756bb2f1a11e87a22>
[24] [CITE@en[MIME Type Detection in Windows Internet Explorer (Windows)]]
([TIME[2015-09-26 02:04:52 +09:00]] 版)
<https://msdn.microsoft.com/en-us/library/ms775147(v=vs.85).aspx>
[25] [CITE@en[Clarify the following/downloading hyperlink algorithms · whatwg/html@47e4aa0]]
([TIME[2015-11-05 17:14:39 +09:00]] 版)
<https://github.com/whatwg/html/commit/47e4aa05825df966848ca2c7773794576a130b88>
[FIG(quote)[
[FIGCAPTION[
[26] [CITE[IE9以降でダウンロード時file.exeがfile_exeにリネームされる件対処 - Qiita]]
([TIME[2016-01-08 11:52:02 +09:00]] 版)
<https://qiita.com/tukiyo3/items/dfcecb145a101addd2a1>
]FIGCAPTION]
> 「暗号化されたページをディスクに保存しない」のチェックを外す。
> OS再起動
]FIG]
[27] [CITE@en[URLs are parsed and produce records · whatwg/html@30bc255]]
([TIME[2016-02-14 22:58:30 +09:00]] 版)
<https://github.com/whatwg/html/commit/30bc2557105ad62881ec9670f253febbc9761b44>
[91] [CITE@en[Issue 610284 - chromium - Regression: 'Download as PDF' option is not working on 'www.chromium.org/Home'. - Monorail]]
( ([TIME[2016-05-15 11:32:15 +09:00]]))
<https://bugs.chromium.org/p/chromium/issues/detail?id=610284>
[98] [CITE@en[Linking: borrow HTML attributes, explicitly allow nested links, cleanup]]
( ([[AmeliaBR]]著, [TIME[2016-06-22 21:54:34 +09:00]]))
<https://github.com/w3c/svgwg/commit/33f85d2bdd20e7d33eedff77b85b10c8451db397>
[99] [CITE@en[Allow <a>/<area> with download="" to not require user activation]]
([[domenic]]著, [TIME[2016-12-06 07:13:46 +09:00]])
<https://github.com/whatwg/html/commit/5de03c7b38e7b33a49f0dcf2bcef29e8eb9a2205>
[100] [CITE@en[Revert part of "Allow <a>/<area> with download="" to not require user…]]
([[zcorpan]]著, [TIME[2016-12-07 17:47:38 +09:00]])
<https://github.com/whatwg/html/commit/b359209579d79a713af88ecf24b9be8fb6168adf>
[103] [CITE[New Web Features in Safari 10.1 | WebKit]]
([TIME[2017-04-19 07:13:13 +09:00]])
<https://webkit.org/blog/7477/new-web-features-in-safari-10-1/>
[105] [CITE@ja[WindowsのSCFファイルをGoogle Chromeでダウンロードさせ、SMB認証情報を取得する攻撃 | スラド IT]]
([TIME[2017-05-21 15:16:49 +09:00]])
<https://it.srad.jp/story/17/05/20/224211/>
[106] [CITE@en[159292 - During download, "file.lnk" is renamed "file.download", name is _not_ fixed upon completion. - chromium - Monorail]]
( ([TIME[2017-08-11 02:40:21 +09:00]]))
<https://bugs.chromium.org/p/chromium/issues/detail?id=159292>
[107] [CITE@en[346744 - Security: download attribute allows download without user interaction - chromium - Monorail]]
( ([TIME[2017-08-11 02:53:28 +09:00]]))
<https://bugs.chromium.org/p/chromium/issues/detail?id=346744>
[108] [CITE@en[570210 - "Save link as" takes suggested filename from @download without checking origin. - chromium - Monorail]]
( ([TIME[2017-08-11 02:57:49 +09:00]]))
<https://bugs.chromium.org/p/chromium/issues/detail?id=570210>
[109] [CITE@en[373182 - Wrong file name when clicking on data-uri anchor with "download" tag - chromium - Monorail]]
( ([TIME[2017-08-11 02:59:02 +09:00]]))
<https://bugs.chromium.org/p/chromium/issues/detail?id=373182>
[110] [CITE@en[How to name videos in <source>? (missing spec) · Issue #2964 · whatwg/html]]
([TIME[2017-08-27 17:08:27 +09:00]])
<https://github.com/whatwg/html/issues/2964>
[111] [CITE@en[744499 - Consider downloading `ftp://` resources rather than rendering them. - chromium - Monorail]]
([TIME[2017-09-20 17:14:30 +09:00]])
<https://bugs.chromium.org/p/chromium/issues/detail?id=744499>
[113] [CITE@en[Deprecations and removals in Chrome 65 | Web | Google Developers]]
([TIME[2018-03-06 04:54:20 +09:00]])
<https://developers.google.com/web/updates/2018/02/chrome-65-deprecations>
[114] [CITE@en[CORB: protecting certain nosniff and 206 responses]]
([[anforowicz]]著, [TIME[2018-05-17 16:24:03 +09:00]])
<https://github.com/whatwg/fetch/commit/794dd5452705564538440cc5b2c1f13d909e2f9a>
[115] [CITE@en[Allow Range header to be set by APIs]]
([[jakearchibald]]著, [TIME[2018-05-30 02:00:06 +09:00]])
<https://github.com/whatwg/fetch/commit/819d8c9d6617986a831ecd9cf21c34ba9589a890>
[116] [CITE@en[Correct the short definition for a/download values]]
([[AmeliaBR]]著, [TIME[2018-08-14 03:42:51 +09:00]])
<https://github.com/w3c/svgwg/commit/d1fffddbf1896910bbb5a5d2acf0dd896c06dd09>
[117] [CITE@en[Update SVGAElement to match attributes on HTMLAnchorElement by dstorey · Pull Request #409 · w3c/svgwg]]
([TIME[2018-08-15 13:27:25 +09:00]])
<https://github.com/w3c/svgwg/pull/409>
[118] [CITE@ja[非常に長い名前のBlobでFirefoxをクラッシュさせる攻撃 | スラド セキュリティ]]
([TIME[2018-09-28 15:27:16 +09:00]])
<https://security.srad.jp/story/18/09/27/085207/>
[119] [CITE@ja[多くの環境の "%USERPROFILE%\Downloads" が魔窟・ゴミ屋敷な現状を理解すべき (#3212395) | 「UNLHA32.DLL」が7年ぶりにアップデート | スラド]]
([TIME[2018-10-14 01:34:50 +09:00]])
<https://srad.jp/comment/3212395>
[120] [CITE@en[1030660 - Is ClearBogusContentEncodingIfNeeded() needed?]]
([TIME[2019-03-04 18:46:02 +09:00]])
<https://bugzilla.mozilla.org/show_bug.cgi?id=1030660>
[121] [CITE@en[Confusion on how to handle cross-origin download attribute · Issue #2562 · whatwg/html]]
([TIME[2019-12-02 11:07:12 +09:00]])
<https://github.com/whatwg/html/issues/2562>
[122] [CITE@en[714373 - Ignore <a download> for cross origin URLs - An open-source project to help move the web forward. - Monorail]]
([TIME[2019-12-02 11:07:52 +09:00]])
<https://bugs.chromium.org/p/chromium/issues/detail?id=714373>
[123] [CITE@en[Block cross-origin <a download> - Chrome Platform Status]]
([TIME[2019-12-02 11:08:21 +09:00]])
<https://www.chromestatus.com/feature/4969697975992320>