Validation d'envoi
Mon formulaire d'envoi accepte-t-il ce qu'il doit et refuse-t-il le reste ?
Le préréglage upload-validation construit en une commande tout un jeu de vrais fichiers de test
pour cette question, avec un manifest.json à côté qui dit comment votre système doit
réagir à chaque fichier. Tout ce qui suit est lu depuis le programme, aux valeurs par défaut de
cette version.
Que trouve-t-il d'habitude ?
- une limite appliquée dans le navigateur et pas sur le serveur
- un SVG ou un HTML pris pour une image ou pour du texte brut, un moyen de faire passer un script à travers un formulaire
- un fichier contrôlé par son extension et jamais ouvert, si bien qu'un PDF nommé .jpg passe
- un formulaire qui lit tout le corps en mémoire avant de regarder sa taille
- un envoi nommé PHOTO.JPG refusé là où photo.jpg est accepté, ou l'inverse
- un nom avec des espaces, des parenthèses ou des caractères hors ASCII écrit sur le disque tel quel
Que contient le jeu ?
Aux valeurs par défaut, comme le rapporte tfg preset show upload-validation :
| Fichiers | 71 |
|---|---|
| Cibles dans sa recette | 22 |
| Taille totale | 120 639 488 B |
| Formats | html, jpg, pdf, png, svg, txt |
Et ce que le manifeste de ce jeu attend de votre système :
| Attendu | Signification | Fichiers |
|---|---|---|
accept | Votre système doit accepter le fichier. | 56 |
reject | Votre système doit refuser le fichier. | 10 |
unspecified | Cela dépend des règles de votre système. Vous décidez, puis vous vérifiez que ce qui se passe est ce que vous aviez voulu. | 5 |
Que pouvez-vous modifier ?
| Réglage | Accepte | Par défaut | Ce qu'il fait |
|---|---|---|---|
--limit |
une taille comme 2mb | 10mb |
La limite de taille que déclare votre formulaire d'envoi. Ce jeu fait un pas de chaque côté - pour un fichier à chaque distance, lancez le préréglage size-boundaries. Cette valeur par défaut est notre substitut, pas la valeur de votre système. Passez la vôtre. |
--allow |
identifiants de format séparés par des virgules | jpg,png,pdf |
Les types que votre formulaire doit accepter. Chacun devient un vrai fichier de ce type, et ils forment le témoin positif de tout le jeu. |
--deny |
extensions séparées par des virgules | svg,html,exe,sh |
Les extensions que votre formulaire doit refuser. Une extension pour laquelle cette version n'a pas de format reçoit quand même un fichier à ce nom, contenant du texte brut. |
--far-over |
10x, 2x, off | 2x |
Jusqu'où le grand fichier dépasse la limite. Désactivez-le là où écrire plusieurs fois la limite ne vaut pas le disque. |
--bulk |
0 - 10000 fichiers | 50 |
Le nombre de fichiers de l'envoi en masse. Zéro retire complètement ce groupe du jeu. |
Comment le lancer ?
Voyez ce que coûterait le jeu, construisez-le ou prenez sa recette pour la modifier :
tfg preset show upload-validation
tfg generate --preset upload-validation --limit 10mb --out ./upload-validation
tfg preset eject upload-validation > upload-validation.yaml
Ou bâtissez dessus dans une recette à vous, à côté de vos tests :
version: 1
extends: preset:upload-validation
with:
limit: 10mb