Validarea încărcării
Acceptă formularul meu de încărcare ce trebuie și respinge restul?
Presetarea upload-validation construiește cu o singură comandă un set întreg de fișiere de test
reale pentru această întrebare, și un manifest.json alături care spune cum trebuie să
reacționeze sistemul tău la fiecare fișier. Tot ce urmează este citit din program, la valorile
implicite ale acestei versiuni.
Ce găsește de obicei?
- o limită aplicată în browser și nu pe server
- un SVG sau un HTML luat drept imagine sau text simplu, o cale de a strecura un script printr-un formular
- un fișier verificat după extensie și niciodată deschis, așa că un PDF numit .jpg trece
- un formular care citește tot corpul în memorie înainte să vadă cât de mare e
- o încărcare numită PHOTO.JPG respinsă acolo unde photo.jpg e acceptată, sau invers
- un nume cu spații, paranteze sau caractere în afara ASCII scris pe disc neschimbat
Ce este în set?
La valorile implicite, așa cum le raportează tfg preset show upload-validation:
| Fișiere | 71 |
|---|---|
| Targeturi în rețeta lui | 22 |
| Dimensiune totală | 120 639 488 B |
| Formate | html, jpg, pdf, png, svg, txt |
Și ce așteaptă manifestul acelui set de la sistemul tău:
| Așteptat | Semnificație | Fișiere |
|---|---|---|
accept | Sistemul tău trebuie să accepte fișierul. | 56 |
reject | Sistemul tău trebuie să respingă fișierul. | 10 |
unspecified | Depinde de regulile sistemului tău. Tu decizi, apoi verifici că ce se întâmplă este ce ai vrut. | 5 |
Ce poți schimba?
| Setare | Primește | Implicit | Ce face |
|---|---|---|---|
--limit |
o dimensiune precum 2mb | 10mb |
Limita de dimensiune declarată de formularul tău de încărcare. Acest set face câte un pas de fiecare parte - pentru un fișier la orice distanță rulează presetarea size-boundaries. Această valoare implicită este valoarea noastră provizorie, nu valoarea sistemului tău. Dă-o pe a ta. |
--allow |
id-uri de format separate prin virgule | jpg,png,pdf |
Ce tipuri trebuie să accepte formularul tău. Fiecare devine un fișier real de acel tip și ele formează controlul pozitiv al întregului set. |
--deny |
extensii separate prin virgule | svg,html,exe,sh |
Ce extensii trebuie să respingă formularul tău. O extensie pentru care această versiune nu are format primește totuși un fișier cu acel nume, conținând text simplu. |
--far-over |
10x, 2x, off | 2x |
Cât de mult peste limită ajunge singurul fișier mare. Oprește-l unde scrierea de mai multe ori limita nu merită discul. |
--bulk |
0 - 10000 fișiere | 50 |
Câte fișiere conține încărcarea în masă. Zero scoate acel grup complet din set. |
Cum o rulezi?
Vezi cât ar costa setul, construiește-l sau ia-i rețeta ca s-o editezi:
tfg preset show upload-validation
tfg generate --preset upload-validation --limit 10mb --out ./upload-validation
tfg preset eject upload-validation > upload-validation.yaml
Sau construiește peste ea într-o rețetă proprie, lângă testele tale:
version: 1
extends: preset:upload-validation
with:
limit: 10mb