fix: constrain picker and reject oversized uploads safely
deploy-preland / deploy barbariskatest (push) Successful in 20s
deploy-preland / deploy barbariskatest (push) Successful in 20s
This commit is contained in:
1 parent
700408c1e0
commit
2f76438226
2 files changed
+78
-15
No files matched your search
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
$form = file_get_contents(dirname(__DIR__) . '/components/form.php');
|
||||
$failures = [];
|
||||
|
||||
foreach ([
|
||||
"\$basePickerAccept = 'image/jpeg,image/png,image/gif,image/webp,image/bmp,image/avif,image/heic,image/heif,image/jxl,image/tiff," => 'Preland должен ограничивать штатный picker поддерживаемыми raster-контейнерами.',
|
||||
'accept="<?= htmlspecialchars($basePickerAccept' => 'Preland должен передать допустимые типы в штатный file input.',
|
||||
'picker_accept' => 'Preland должен получать актуальный accept из API policy для PDF.',
|
||||
'max_file_size_bytes' => 'Preland должен получить лимит размера для preflight без передачи гигабайтного файла.',
|
||||
'rejectOversizedFile' => 'Preland обязан создать Tour-отказ без загрузки oversized байтов.',
|
||||
] as $needle => $message) {
|
||||
if ($form === false || !str_contains($form, $needle)) {
|
||||
$failures[] = $message;
|
||||
}
|
||||
}
|
||||
|
||||
if ($failures !== []) {
|
||||
fwrite(STDERR, "FAILED\n- " . implode("\n- ", $failures) . "\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
fwrite(STDOUT, "OK: preland upload admission\n");
|
||||
Reference in new issue
Block a user