help/content/responses/vector.md

70 lines
3.1 KiB
Markdown
Raw Permalink Normal View History

2019-07-05 16:13:19 +00:00
---
date: 2019-04-05T15:59:52+02:00
title: Liste de flags
weight: 7
---
Ce type de flag s'utilise pour valider plusieurs chaînes de caractères liées au même flag.
Par exemple, s'il faut trouver une liste d'administrateurs, les IP appartenant à un botnet, les fichiers infectés, ...
2023-04-10 19:58:01 +00:00
Attention, par défaut, les propositions ne sont pas sensibles à la casse[^gocase].
2019-07-05 16:13:19 +00:00
2023-04-10 19:58:01 +00:00
[^gocase]: Casse selon les classes Unicode de caractères, cela ne concerne pas
2019-07-05 16:13:19 +00:00
que l'alphabet traditionnel. Pour plus d'infos, consultez la [documentation
de la fonction utilisée](https://golang.org/pkg/bytes/#ToLower).
### Exemple
```toml
[[flag]]
label = "IPv6 du botnet"
raw = ['fe80::319c:1002:7c60:68fa', 'fe80::319c:1002:7c60:68fb', 'fe80::319c:1002:7c60:68fc', 'fe80::319c:1002:7c60:68fd' ]
```
2023-04-10 19:58:01 +00:00
Il convient de lister toutes les IP du botnet, l'ordre importe peut, donc on ne précise pas la propriété `ordered` ; la casse d'un IP n'a pas non plus d'importance, donc on laisse la propriété `casesensitive` à sa valeur par défaut.
2019-07-05 16:13:19 +00:00
## Propriétés
type
: `"vector"`
id
: (facultatif) identifiant du flag au sein de l'exercice, pour définir des dépendances ;
label
: (facultatif, par défaut : `Flag`) intitulé du drapeau ;
raw
: tableau TOML de drapeaux exacts à trouver ; sous forme de tableau, le participant n'aura pas connaissaance du nombre d'éléments ;
2022-12-10 13:37:39 +00:00
capture_regexp
2024-04-13 08:14:08 +00:00
: (facultatif) [expression rationnelle]({{% relref "/responses/simple.md#flag-modulable" %}}) dont les groupes capturés serviront comme chaîne à valider (notez que `?:` au début d'un groupe ne le capturera pas). Attention, la regexp est appliquée seulement sur la représentation de la chaîne de caractères obtenue, pas sur chaque élément ;
2019-07-05 16:13:19 +00:00
2019-11-25 16:44:43 +00:00
showlines
2023-04-10 19:58:01 +00:00
: (facultatif, restreint aux vecteurs de moins de 10 éléments, par défaut : `false`) affiche directement le bon nombre de champs de réponse dans l'interface, plutôt que de laisser la taille du tableau inconnue aux participants ;
2019-11-25 16:44:43 +00:00
2019-07-05 16:13:19 +00:00
ordered
2023-04-10 19:58:01 +00:00
: (facultatif, par défaut : `false`) ignore l'ordre dans lequel les éléments du tableau sont passés ;
2019-07-05 16:13:19 +00:00
casesensitive
2023-04-10 19:58:01 +00:00
: (facultatif, par défaut : `false`) prend en compte la casse des drapeaux lors de la validation ;
2019-07-05 16:13:19 +00:00
2021-05-08 20:59:01 +00:00
placeholder
2023-06-19 15:41:52 +00:00
: chaîne de caractères placée dans le champ du formulaire avant la frappe, idéale pour donner un exemple de ce qui serait attendu ou une indication de format ;
2021-05-08 20:59:01 +00:00
2021-10-25 09:28:38 +00:00
unit
: (facultatif) chaîne de caractères ajoutée à la fin du champ pour indiquer une information complétant le flag, par exemple l'unité de mesure attendue ;
2019-07-05 16:13:19 +00:00
help
2021-05-08 20:59:01 +00:00
: (facultatif, rarement utilisé) chaîne de caractères placée sous le champ du formulaire, idéale pour donner un détail supplémentaire.
2019-07-05 16:13:19 +00:00
separator
2023-04-10 19:58:01 +00:00
: (facultatif, par défaut `,`) caractère utilisé comme séparateur lors de la fusion des différents éléments de réponse. Si l'une des valeurs de la réponse contient `,`, remplacez le séparateur par n'importe quel caractère qui n'est contenu dans aucune des chaînes.
2019-07-05 16:13:19 +00:00
## Rendu
![Rendu list de flag](flag.png)
Dans cet exemple, on demande explicitement que les IP soient listées dans l'ordre, on aura pris soin d'ajouter `ordered = true`.