upload-safety 0.2.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +39 -7
- package/dist/archive-content.d.ts +15 -0
- package/dist/archive-content.d.ts.map +1 -0
- package/dist/archive-content.js +277 -0
- package/dist/archive-content.js.map +1 -0
- package/dist/asf-media.d.ts +22 -0
- package/dist/asf-media.d.ts.map +1 -0
- package/dist/asf-media.js +159 -0
- package/dist/asf-media.js.map +1 -0
- package/dist/check-upload.js +1 -1
- package/dist/check-upload.js.map +1 -1
- package/dist/heif-metadata.d.ts +8 -0
- package/dist/heif-metadata.d.ts.map +1 -1
- package/dist/heif-metadata.js +1 -1
- package/dist/heif-metadata.js.map +1 -1
- package/dist/media-formats.d.ts +51 -0
- package/dist/media-formats.d.ts.map +1 -0
- package/dist/media-formats.js +498 -0
- package/dist/media-formats.js.map +1 -0
- package/dist/photo-metadata.d.ts +4 -2
- package/dist/photo-metadata.d.ts.map +1 -1
- package/dist/photo-metadata.js +39 -2
- package/dist/photo-metadata.js.map +1 -1
- package/dist/rtf-content.d.ts +12 -0
- package/dist/rtf-content.d.ts.map +1 -0
- package/dist/rtf-content.js +175 -0
- package/dist/rtf-content.js.map +1 -0
- package/dist/upload-allowlist.d.ts +19 -8
- package/dist/upload-allowlist.d.ts.map +1 -1
- package/dist/upload-allowlist.js +136 -23
- package/dist/upload-allowlist.js.map +1 -1
- package/dist/video-formats.d.ts +33 -0
- package/dist/video-formats.d.ts.map +1 -0
- package/dist/video-formats.js +373 -0
- package/dist/video-formats.js.map +1 -0
- package/dist/zip-entries.d.ts +8 -0
- package/dist/zip-entries.d.ts.map +1 -1
- package/dist/zip-entries.js +29 -2
- package/dist/zip-entries.js.map +1 -1
- package/package.json +6 -3
- package/src/archive-content.ts +306 -0
- package/src/asf-media.ts +184 -0
- package/src/check-upload.ts +1 -1
- package/src/heif-metadata.ts +2 -2
- package/src/media-formats.ts +522 -0
- package/src/photo-metadata.ts +40 -2
- package/src/rtf-content.ts +178 -0
- package/src/upload-allowlist.ts +162 -27
- package/src/video-formats.ts +398 -0
- package/src/zip-entries.ts +33 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-formats.js","sourceRoot":"","sources":["../src/media-formats.ts"],"names":[],"mappings":"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"}
|
package/dist/photo-metadata.d.ts
CHANGED
|
@@ -6,9 +6,11 @@
|
|
|
6
6
|
* `heif-metadata.ts`.
|
|
7
7
|
*/
|
|
8
8
|
import type { AllowedExtension } from './upload-allowlist.js';
|
|
9
|
+
export declare const MP4_BRANDS: string[];
|
|
10
|
+
export declare const M4A_BRANDS: string[];
|
|
9
11
|
/**
|
|
10
|
-
* The bytes to store for an upload:
|
|
11
|
-
* unchanged; null for a
|
|
12
|
+
* The bytes to store for an upload: an image, audio or video file without its metadata, any
|
|
13
|
+
* other file unchanged; null for a media file whose structure does not read.
|
|
12
14
|
*/
|
|
13
15
|
export declare function stripPhotoMetadata(extension: AllowedExtension, bytes: Uint8Array): Uint8Array | null;
|
|
14
16
|
//# sourceMappingURL=photo-metadata.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"photo-metadata.d.ts","sourceRoot":"","sources":["../src/photo-metadata.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"photo-metadata.d.ts","sourceRoot":"","sources":["../src/photo-metadata.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAmS9D,eAAO,MAAM,UAAU,UAAqG,CAAC;AAE7H,eAAO,MAAM,UAAU,UAA6C,CAAC;AAErE;;;GAGG;AACH,wBAAgB,kBAAkB,CAAE,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,UAAU,GAAI,UAAU,GAAG,IAAI,CAgDtG"}
|
package/dist/photo-metadata.js
CHANGED
|
@@ -7,6 +7,9 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { crc32 } from 'node:zlib';
|
|
9
9
|
import { stripHeif } from './heif-metadata.js';
|
|
10
|
+
import { inspectAsf } from './asf-media.js';
|
|
11
|
+
import { checkBmp, checkIco, checkOgg, stripAac, stripFlac, stripGif, stripMp3, stripWav } from './media-formats.js';
|
|
12
|
+
import { stripAvi, stripIsoMedia, stripMatroska } from './video-formats.js';
|
|
10
13
|
const ORIENTATION_TAG = 0x0112;
|
|
11
14
|
const SHORT_TYPE = 3;
|
|
12
15
|
const UPRIGHT = 1;
|
|
@@ -282,9 +285,12 @@ function stripWebp(bytes) {
|
|
|
282
285
|
header.write('WEBP', 8, 'latin1');
|
|
283
286
|
return Buffer.concat([header, ...chunks]);
|
|
284
287
|
}
|
|
288
|
+
export const MP4_BRANDS = ['isom', 'iso2', 'iso4', 'iso5', 'iso6', 'mp41', 'mp42', 'avc1', 'dash', 'M4V ', 'msdh', 'msix'];
|
|
289
|
+
// A video renamed to .m4a passes as well; both are media and neither runs.
|
|
290
|
+
export const M4A_BRANDS = ['M4A ', 'M4B ', 'mp42', 'isom', 'iso2'];
|
|
285
291
|
/**
|
|
286
|
-
* The bytes to store for an upload:
|
|
287
|
-
* unchanged; null for a
|
|
292
|
+
* The bytes to store for an upload: an image, audio or video file without its metadata, any
|
|
293
|
+
* other file unchanged; null for a media file whose structure does not read.
|
|
288
294
|
*/
|
|
289
295
|
export function stripPhotoMetadata(extension, bytes) {
|
|
290
296
|
const content = Buffer.from(bytes.buffer, bytes.byteOffset, bytes.byteLength);
|
|
@@ -300,6 +306,37 @@ export function stripPhotoMetadata(extension, bytes) {
|
|
|
300
306
|
case 'heif':
|
|
301
307
|
case 'avif':
|
|
302
308
|
return stripHeif(content);
|
|
309
|
+
case 'gif':
|
|
310
|
+
return stripGif(content);
|
|
311
|
+
case 'bmp':
|
|
312
|
+
return checkBmp(content);
|
|
313
|
+
case 'ico':
|
|
314
|
+
return checkIco(content);
|
|
315
|
+
case 'mp3':
|
|
316
|
+
return stripMp3(content);
|
|
317
|
+
case 'wav':
|
|
318
|
+
return stripWav(content);
|
|
319
|
+
case 'flac':
|
|
320
|
+
return stripFlac(content);
|
|
321
|
+
case 'ogg':
|
|
322
|
+
return checkOgg(content);
|
|
323
|
+
case 'mp4':
|
|
324
|
+
return stripIsoMedia(content, MP4_BRANDS);
|
|
325
|
+
case 'm4a':
|
|
326
|
+
return stripIsoMedia(content, M4A_BRANDS);
|
|
327
|
+
case 'mov':
|
|
328
|
+
return stripIsoMedia(content, null);
|
|
329
|
+
case 'webm':
|
|
330
|
+
return stripMatroska(content, 'webm');
|
|
331
|
+
case 'mkv':
|
|
332
|
+
return stripMatroska(content, 'matroska');
|
|
333
|
+
case 'aac':
|
|
334
|
+
return stripAac(content);
|
|
335
|
+
case 'avi':
|
|
336
|
+
return stripAvi(content);
|
|
337
|
+
case 'wma':
|
|
338
|
+
case 'wmv':
|
|
339
|
+
return inspectAsf(content, extension === 'wmv').bytes;
|
|
303
340
|
default:
|
|
304
341
|
return bytes;
|
|
305
342
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"photo-metadata.js","sourceRoot":"","sources":["../src/photo-metadata.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"photo-metadata.js","sourceRoot":"","sources":["../src/photo-metadata.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checks that an RTF upload holds no active content. Word's RTF reader is lenient and attackers
|
|
3
|
+
* obfuscate heavily, so this refuses on the presence of dangerous control words and DDE fields
|
|
4
|
+
* instead of trying to understand the document.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Scans RTF the way a reader tokenizes it: groups, control words, control symbols, `\bin` data and text.
|
|
8
|
+
* Returns 'macros' for an active control word or a DDE field, 'mismatch' when the file is not RTF
|
|
9
|
+
* or cannot be read to the end, else 'valid'.
|
|
10
|
+
*/
|
|
11
|
+
export declare function inspectRtf(content: Buffer): 'valid' | 'macros' | 'mismatch';
|
|
12
|
+
//# sourceMappingURL=rtf-content.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rtf-content.d.ts","sourceRoot":"","sources":["../src/rtf-content.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAsDH;;;;GAIG;AACH,wBAAgB,UAAU,CAAE,OAAO,EAAE,MAAM,GAAI,OAAO,GAAG,QAAQ,GAAG,UAAU,CAkH7E"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checks that an RTF upload holds no active content. Word's RTF reader is lenient and attackers
|
|
3
|
+
* obfuscate heavily, so this refuses on the presence of dangerous control words and DDE fields
|
|
4
|
+
* instead of trying to understand the document.
|
|
5
|
+
*/
|
|
6
|
+
// Word opens a file as RTF when it starts with `{\rt`, whatever follows (`{\rtf1` is only the usual form).
|
|
7
|
+
const RTF_SIGNATURE = '{\\rt';
|
|
8
|
+
const MAX_GROUP_DEPTH = 1000;
|
|
9
|
+
const DEFAULT_UNICODE_SKIP = 1;
|
|
10
|
+
// Word runs the command of a DDE field (with a prompt); QUOTE with character codes can spell one out.
|
|
11
|
+
const DDE_FIELD = /\bDDE(?:AUTO)?\b|\bQUOTE\s+\d/i;
|
|
12
|
+
/**
|
|
13
|
+
* Control words that carry or load active content:
|
|
14
|
+
* - `obj*` starts an embedded or linked OLE object (`\object`, `\objdata`, `\objemb`, `\objautlink`, `\objupdate`, ...),
|
|
15
|
+
* the carrier of Equation Editor exploits (CVE-2017-11882) and auto-loading links (CVE-2017-0199).
|
|
16
|
+
* - `template` attaches a template, which can be a remote one that Word loads and runs macros from.
|
|
17
|
+
* - `datastore` holds a custom XML data store, a way to smuggle an object past a reader that only looks for `obj*`.
|
|
18
|
+
*/
|
|
19
|
+
const ACTIVE_CONTROL_WORD_PREFIXES = ['obj', 'template', 'datastore'];
|
|
20
|
+
const FIELD_INSTRUCTION_WORD = 'fldinst';
|
|
21
|
+
const BIN_WORD = 'bin';
|
|
22
|
+
const UNICODE_WORD = 'u';
|
|
23
|
+
const UNICODE_SKIP_WORD = 'uc';
|
|
24
|
+
const CHAR_OPEN_GROUP = 0x7b;
|
|
25
|
+
const CHAR_CLOSE_GROUP = 0x7d;
|
|
26
|
+
const CHAR_BACKSLASH = 0x5c;
|
|
27
|
+
const CHAR_QUOTE = 0x27;
|
|
28
|
+
const CHAR_TILDE = 0x7e;
|
|
29
|
+
const CHAR_SPACE = 0x20;
|
|
30
|
+
const CHAR_CR = 0x0d;
|
|
31
|
+
const CHAR_LF = 0x0a;
|
|
32
|
+
const CHAR_MINUS = 0x2d;
|
|
33
|
+
const CHAR_ZERO = 0x30;
|
|
34
|
+
const CHAR_NINE = 0x39;
|
|
35
|
+
const MAX_UNICODE_PARAMETER = 0xffff;
|
|
36
|
+
const UNICODE_RANGE = 0x10000;
|
|
37
|
+
const isLetter = (byte) => (byte >= 0x41 && byte <= 0x5a) || (byte >= 0x61 && byte <= 0x7a);
|
|
38
|
+
const isDigit = (byte) => byte >= CHAR_ZERO && byte <= CHAR_NINE;
|
|
39
|
+
/** The value of a hex digit byte, or -1. */
|
|
40
|
+
function hexValue(byte) {
|
|
41
|
+
if (byte === undefined) {
|
|
42
|
+
return -1;
|
|
43
|
+
}
|
|
44
|
+
if (isDigit(byte)) {
|
|
45
|
+
return byte - CHAR_ZERO;
|
|
46
|
+
}
|
|
47
|
+
const lower = byte | 0x20;
|
|
48
|
+
return lower >= 0x61 && lower <= 0x66 ? lower - 0x61 + 10 : -1;
|
|
49
|
+
}
|
|
50
|
+
function isActiveControlWord(word) {
|
|
51
|
+
return ACTIVE_CONTROL_WORD_PREFIXES.some((prefix) => word.startsWith(prefix));
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Scans RTF the way a reader tokenizes it: groups, control words, control symbols, `\bin` data and text.
|
|
55
|
+
* Returns 'macros' for an active control word or a DDE field, 'mismatch' when the file is not RTF
|
|
56
|
+
* or cannot be read to the end, else 'valid'.
|
|
57
|
+
*/
|
|
58
|
+
export function inspectRtf(content) {
|
|
59
|
+
if (content.toString('latin1', 0, RTF_SIGNATURE.length).toLowerCase() !== RTF_SIGNATURE) {
|
|
60
|
+
return 'mismatch';
|
|
61
|
+
}
|
|
62
|
+
// Word reads the instruction of a field from its `\fldinst` group, nested groups included.
|
|
63
|
+
let instructions = '';
|
|
64
|
+
let fieldDepth = -1;
|
|
65
|
+
// `\uc` is scoped to its group.
|
|
66
|
+
const unicodeSkips = [DEFAULT_UNICODE_SKIP];
|
|
67
|
+
let depth = 0;
|
|
68
|
+
let skipCount = 0;
|
|
69
|
+
let position = 0;
|
|
70
|
+
const addText = (text) => {
|
|
71
|
+
if (skipCount > 0) {
|
|
72
|
+
skipCount--;
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
if (fieldDepth >= 0) {
|
|
76
|
+
instructions += text;
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
while (position < content.length) {
|
|
80
|
+
const byte = content[position++];
|
|
81
|
+
if (byte === CHAR_OPEN_GROUP) {
|
|
82
|
+
depth++;
|
|
83
|
+
if (depth > MAX_GROUP_DEPTH) {
|
|
84
|
+
return 'mismatch';
|
|
85
|
+
}
|
|
86
|
+
unicodeSkips.push(unicodeSkips[unicodeSkips.length - 1]);
|
|
87
|
+
skipCount = 0;
|
|
88
|
+
}
|
|
89
|
+
else if (byte === CHAR_CLOSE_GROUP) {
|
|
90
|
+
if (depth > 0) {
|
|
91
|
+
if (depth === fieldDepth) {
|
|
92
|
+
fieldDepth = -1;
|
|
93
|
+
}
|
|
94
|
+
depth--;
|
|
95
|
+
unicodeSkips.pop();
|
|
96
|
+
}
|
|
97
|
+
skipCount = 0;
|
|
98
|
+
}
|
|
99
|
+
else if (byte === CHAR_CR || byte === CHAR_LF) {
|
|
100
|
+
// Readers ignore raw line breaks, so `DD` and `E` on two lines still spell DDE.
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
else if (byte !== CHAR_BACKSLASH) {
|
|
104
|
+
addText(String.fromCharCode(byte));
|
|
105
|
+
}
|
|
106
|
+
else if (position < content.length) {
|
|
107
|
+
const next = content[position];
|
|
108
|
+
if (!isLetter(next)) {
|
|
109
|
+
position++;
|
|
110
|
+
if (next === CHAR_QUOTE) {
|
|
111
|
+
const high = hexValue(content[position]);
|
|
112
|
+
const low = hexValue(content[position + 1]);
|
|
113
|
+
if (high >= 0 && low >= 0) {
|
|
114
|
+
position += 2;
|
|
115
|
+
addText(String.fromCharCode(high * 16 + low));
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
else if (next === CHAR_TILDE) {
|
|
119
|
+
addText(String.fromCharCode(CHAR_SPACE));
|
|
120
|
+
}
|
|
121
|
+
else if (next === CHAR_BACKSLASH || next === CHAR_OPEN_GROUP || next === CHAR_CLOSE_GROUP) {
|
|
122
|
+
addText(String.fromCharCode(next));
|
|
123
|
+
}
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
126
|
+
const wordStart = position;
|
|
127
|
+
while (position < content.length && isLetter(content[position])) {
|
|
128
|
+
position++;
|
|
129
|
+
}
|
|
130
|
+
const word = content.toString('latin1', wordStart, position).toLowerCase();
|
|
131
|
+
let parameter;
|
|
132
|
+
const parameterStart = position;
|
|
133
|
+
if (content[position] === CHAR_MINUS) {
|
|
134
|
+
position++;
|
|
135
|
+
}
|
|
136
|
+
const digitsStart = position;
|
|
137
|
+
while (position < content.length && isDigit(content[position])) {
|
|
138
|
+
position++;
|
|
139
|
+
}
|
|
140
|
+
if (position > digitsStart) {
|
|
141
|
+
parameter = Number(content.toString('latin1', parameterStart, position));
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
position = parameterStart;
|
|
145
|
+
}
|
|
146
|
+
if (content[position] === CHAR_SPACE) {
|
|
147
|
+
position++;
|
|
148
|
+
}
|
|
149
|
+
if (isActiveControlWord(word)) {
|
|
150
|
+
return 'macros';
|
|
151
|
+
}
|
|
152
|
+
if (word === FIELD_INSTRUCTION_WORD && fieldDepth < 0) {
|
|
153
|
+
fieldDepth = depth;
|
|
154
|
+
}
|
|
155
|
+
else if (word === BIN_WORD) {
|
|
156
|
+
const length = parameter ?? 0;
|
|
157
|
+
if (length < 0 || position + length > content.length) {
|
|
158
|
+
return 'mismatch';
|
|
159
|
+
}
|
|
160
|
+
position += length;
|
|
161
|
+
}
|
|
162
|
+
else if (word === UNICODE_SKIP_WORD && parameter !== undefined && parameter >= 0) {
|
|
163
|
+
unicodeSkips[unicodeSkips.length - 1] = parameter;
|
|
164
|
+
}
|
|
165
|
+
else if (word === UNICODE_WORD && parameter !== undefined) {
|
|
166
|
+
const codePoint = parameter < 0 ? parameter + UNICODE_RANGE : Math.min(parameter, MAX_UNICODE_PARAMETER);
|
|
167
|
+
skipCount = 0;
|
|
168
|
+
addText(String.fromCharCode(codePoint));
|
|
169
|
+
skipCount = unicodeSkips[unicodeSkips.length - 1];
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
return DDE_FIELD.test(instructions) ? 'macros' : 'valid';
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=rtf-content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rtf-content.js","sourceRoot":"","sources":["../src/rtf-content.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Strict allowlist + validation for
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* alone are trivially spoofed.
|
|
2
|
+
* Strict allowlist + validation for uploads: PDF, MS Office (also the legacy formats), LibreOffice,
|
|
3
|
+
* images, audio, video, text, RTF and archives. Validation happens on three axes: file extension,
|
|
4
|
+
* declared MIME type, and the actual content, i.e. the magic-byte signature plus the parts a file
|
|
5
|
+
* of that kind always has. Extension and MIME alone are trivially spoofed.
|
|
7
6
|
*/
|
|
8
|
-
export type AllowedExtension = 'pdf' | 'doc' | 'docx' | 'ppt' | 'pptx' | 'xls' | 'xlsx' | 'odt' | 'ods' | 'odp' | 'jpg' | 'jpeg' | 'png' | 'webp' | 'heic' | 'heif' | 'avif' | 'csv' | 'txt';
|
|
7
|
+
export type AllowedExtension = 'pdf' | 'doc' | 'docx' | 'ppt' | 'pptx' | 'xls' | 'xlsx' | 'odt' | 'ods' | 'odp' | 'jpg' | 'jpeg' | 'png' | 'webp' | 'heic' | 'heif' | 'avif' | 'gif' | 'bmp' | 'ico' | 'mp3' | 'aac' | 'wav' | 'flac' | 'ogg' | 'm4a' | 'wma' | 'mp4' | 'mov' | 'webm' | 'mkv' | 'avi' | 'wmv' | 'csv' | 'txt' | 'md' | 'rtf' | 'zip' | 'tar' | 'gz' | 'tgz' | 'rar' | '7z';
|
|
8
|
+
/**
|
|
9
|
+
* How much accepting a format exposes. `low`: read in full, nothing in it runs, and it is in the
|
|
10
|
+
* default list. `elevated`: read in full, but the format is a common malware carrier, gets rendered
|
|
11
|
+
* or gets unpacked; accepted only when named in `allowedExtensions`. `unchecked`: only the
|
|
12
|
+
* signature is checked, as its content cannot be read without a decompressor; accepted only when
|
|
13
|
+
* named, and best served as an opaque download.
|
|
14
|
+
*/
|
|
15
|
+
export type FormatRisk = 'low' | 'elevated' | 'unchecked';
|
|
16
|
+
/** The default list: every format of `low` risk. The others must be named in `allowedExtensions`. */
|
|
9
17
|
export declare const ALLOWED_EXTENSIONS: readonly AllowedExtension[];
|
|
18
|
+
/** The risk of accepting each format; see {@link FormatRisk}. */
|
|
19
|
+
export declare const FORMAT_RISK: Readonly<Record<AllowedExtension, FormatRisk>>;
|
|
10
20
|
/** The `accept` attribute value for a file input that takes `extensions`. */
|
|
11
21
|
export declare function acceptAttribute(extensions?: readonly AllowedExtension[]): string;
|
|
12
22
|
export interface UploadDescriptor {
|
|
@@ -16,7 +26,7 @@ export interface UploadDescriptor {
|
|
|
16
26
|
}
|
|
17
27
|
export interface UploadOptions {
|
|
18
28
|
maxBytes: number;
|
|
19
|
-
/**
|
|
29
|
+
/** The formats to accept; defaults to {@link ALLOWED_EXTENSIONS}, the formats of `low` risk. */
|
|
20
30
|
allowedExtensions?: readonly AllowedExtension[];
|
|
21
31
|
}
|
|
22
32
|
export type DescriptorRejection = 'empty' | 'too-large' | 'type-not-allowed' | 'mime-mismatch';
|
|
@@ -43,6 +53,7 @@ export type FileContentVerdict = 'valid' | 'macros' | 'encrypted' | 'mismatch';
|
|
|
43
53
|
/**
|
|
44
54
|
* Checks once that a file's bytes are what `extension` claims: the signature
|
|
45
55
|
* of its family and every part a file of that kind contains, but no macros.
|
|
56
|
+
* Files inside an archive must be of a format in `allowedExtensions`.
|
|
46
57
|
*/
|
|
47
|
-
export declare function inspectFileContent(extension: AllowedExtension, bytes: Uint8Array): FileContentVerdict;
|
|
58
|
+
export declare function inspectFileContent(extension: AllowedExtension, bytes: Uint8Array, allowedExtensions?: readonly AllowedExtension[]): FileContentVerdict;
|
|
48
59
|
//# sourceMappingURL=upload-allowlist.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload-allowlist.d.ts","sourceRoot":"","sources":["../src/upload-allowlist.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"upload-allowlist.d.ts","sourceRoot":"","sources":["../src/upload-allowlist.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAeH,MAAM,MAAM,gBAAgB,GACzB,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAChF,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAClF,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GACvG,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;AAE9E;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,UAAU,GAAG,WAAW,CAAC;AAwb1D,qGAAqG;AACrG,eAAO,MAAM,kBAAkB,EAAE,SAAS,gBAAgB,EAA8F,CAAC;AAEzJ,iEAAiE;AACjE,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAE9B,CAAC;AAE1C,6EAA6E;AAC7E,wBAAgB,eAAe,CAAE,UAAU,GAAE,SAAS,gBAAgB,EAAuB,GAAI,MAAM,CAEtG;AAKD,MAAM,WAAW,gBAAgB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,aAAa;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,gGAAgG;IAChG,iBAAiB,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;CAChD;AAED,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,WAAW,GAAG,kBAAkB,GAAG,eAAe,CAAC;AAE/F,MAAM,MAAM,gBAAgB,GACzB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,gBAAgB,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,GACpE;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAE9C,wBAAgB,YAAY,CAAE,QAAQ,EAAE,MAAM,GAAI,MAAM,CAMvD;AA4BD,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAAE,QAAQ,EAAE,MAAM,GAAI,MAAM,CAsB3D;AAMD;;;GAGG;AACH,wBAAgB,wBAAwB,CACvC,UAAU,EAAE,gBAAgB,EAC5B,EAAE,QAAQ,EAAE,iBAAsC,EAAE,EAAE,aAAa,GACjE,gBAAgB,CAwBlB;AAED,oEAAoE;AACpE,wBAAgB,oBAAoB,CAAE,SAAS,EAAE,gBAAgB,GAAI,MAAM,CAE1E;AAmED,wGAAwG;AACxG,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,CAAC;AAiB/E;;;;GAIG;AACH,wBAAgB,kBAAkB,CACjC,SAAS,EAAE,gBAAgB,EAC3B,KAAK,EAAE,UAAU,EACjB,iBAAiB,GAAE,SAAS,gBAAgB,EAAuB,GACjE,kBAAkB,CAuFpB"}
|