Validazione dell'upload
Il mio modulo di upload accetta ciò che deve e respinge il resto?
Il preset upload-validation costruisce con un solo comando un intero set di file di test reali
per questa domanda, e un manifest.json accanto che dice come il tuo sistema deve
reagire a ogni file. Tutto ciò che segue è letto dal programma, ai valori predefiniti di questa
versione.
Cosa trova di solito?
- un limite applicato nel browser e non sul server
- un SVG o un HTML scambiato per un'immagine o per testo semplice, che è un modo per far passare uno script attraverso un modulo
- un file controllato dall'estensione e mai aperto, così un PDF chiamato .jpg passa
- un modulo che legge l'intero corpo in memoria prima di guardare quanto è grande
- un upload chiamato PHOTO.JPG respinto dove photo.jpg viene accettato, o il contrario
- un nome con spazi, parentesi o caratteri fuori dall'ASCII scritto su disco senza modifiche
Cosa c'è nel set?
Ai valori predefiniti, come lo riporta tfg preset show upload-validation:
| File | 71 |
|---|---|
| Target nella sua ricetta | 22 |
| Dimensione totale | 120 639 488 B |
| Formati | html, jpg, pdf, png, svg, txt |
E ciò che il manifest di quel set si aspetta dal tuo sistema:
| Atteso | Significato | File |
|---|---|---|
accept | Il tuo sistema deve accettare il file. | 56 |
reject | Il tuo sistema deve rifiutare il file. | 10 |
unspecified | Dipende dalle regole del tuo sistema. Decidi tu, poi controlli che ciò che accade sia ciò che intendevi. | 5 |
Cosa puoi cambiare?
| Impostazione | Accetta | Predefinito | Cosa fa |
|---|---|---|---|
--limit |
una dimensione come 2mb | 10mb |
Il limite di dimensione dichiarato dal tuo modulo di upload. Questo set fa un passo per lato - per un file a ogni distanza, esegui il preset size-boundaries. Questo valore predefinito è un nostro segnaposto, non il valore del tuo sistema. Passa il tuo. |
--allow |
id di formato separati da virgole | jpg,png,pdf |
Quali tipi il tuo modulo deve accettare. Ognuno diventa un file reale di quel tipo, e sono il controllo positivo dell'intero set. |
--deny |
estensioni separate da virgole | svg,html,exe,sh |
Quali estensioni il tuo modulo deve respingere. Un'estensione per cui questa versione non ha un formato riceve comunque un file con quel nome, contenente testo semplice. |
--far-over |
10x, 2x, off | 2x |
Quanto oltre il limite arriva l'unico file grande. Disattivalo dove scrivere diverse volte il limite non vale il disco. |
--bulk |
0 - 10000 file | 50 |
Quanti file contiene l'upload di massa. Zero lascia del tutto fuori dal set quel gruppo. |
Come si esegue?
Guarda quanto costerebbe il set, costruiscilo o prendi la sua ricetta da modificare:
tfg preset show upload-validation
tfg generate --preset upload-validation --limit 10mb --out ./upload-validation
tfg preset eject upload-validation > upload-validation.yaml
Oppure costruiscici sopra in una ricetta tua, accanto ai tuoi test:
version: 1
extends: preset:upload-validation
with:
limit: 10mb