--- date: 2019-04-05T15:59:52+02:00 title: Flag simple weight: 5 --- Ce type de flag s'utilise pour valider toute chaîne de caractère que l'on retrouve brute dans les fichiers donnés (ou après un traitement _déterministe_). Attention, par défaut, les propositions ne sont pas sensible à la casse[^gocase]. [^gocase]: Casse selon les classes Unicode de charactères, ce ne concerne pas 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 d'exfiltration" raw = 'fe80::319c:1002:7c60:68fa' ``` Dans cet exemple, l'importance de la casse de l'IPv6 n'est pas importante, on laissera donc le participant entrer l'IPv6 comme il le désire, même si elle peut être copiée/collée. ## Flag strict, sensible à la casse On utilise la propriété `casesensitive` pour forcer la prise en compte de la casse lors de la vérification du flag. ### Exemple ```toml [[flag]] label = "Mot de passe du compte" raw = 'rech1aichoh2Tei1ohHe' casesensitive = true ``` Pour un mot de passe, ou une chaîne de caractère comme un token, ... qui sera forcément recopiée par les participants, on impose le respect strict de la casse. ## Flag modulable ### Exemple Si par exemple, on estime que plusieurs réponses sont correctes (ici, plusieurs secondes) : ```toml [[flag]] label = "Heure de l'exfiltration" raw = '11:22:33+02:00' validator_regexp = "([0-9]{1,2}):([0-9]{1,2}):[0-9]{1,2}" ``` ## Propriétés 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 : drapeau exact à trouver ; sous [forme de tableau]({{< relref "/responses/vector.md" >}}), le participant n'aura pas connaissaance du nombre d'éléments ; validator_regexp : (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) ; casesensitive : (facultatif, par défaut : `false`) prend en compte la la casse de ce drapeau lors de la validation ; help : (facultatif) chaîne de caractères placée dans le champ du formulaire avant la frappe (*placeholder*), idéale pour donner une indication de format ; ## Rendu ![Rendu flag simple](flag.png)