Noms et mots de passe inhabituels
Traduit automatiquement de l’anglais.
Lire en anglaisLe champ e-mail n’est pas le seul que les formulaires d’inscription gèrent mal. Un nom avec une apostrophe est refusé, un nom thaï est coupé en deux, un mot de passe avec une espace est tronqué sans prévenir, et <b>Jane</b> finit en gras sur la page de profil. Proxy Mail QA fournit des valeurs prêtes à l’emploi pour les champs nom et mot de passe d’un formulaire, comme le font les adresses inhabituelles pour le champ e-mail, regroupées selon ce que l’application doit faire de chacune.
Où les obtenir
Section intitulée « Où les obtenir »- Un agent :
get_name_variantsetget_password_variantssur le MCP server. L’agent saisit chaque valeur dans le formulaire et indique ce qu’a fait l’application. - Un test :
qa.nameVariants()etqa.passwordVariants()dans le paquet npm,name_variants()etpassword_variants()dans l’outil d’aide Python, ouGET /v1/variants/namesetGET /v1/variants/passwordssur l’REST API. - À la main : Nouvelle adresse dans l’application propose un prénom de cas limite sur le persona ; Proxy Mail QA for Chrome en propose un sur ses cartes de remplissage, ainsi qu’un mot de passe de cas limite qui respecte les règles du champ.
Chaque valeur est accompagnée de tests (ce qu’elle vérifie) et de value (ce qu’il faut saisir, exactement).
Les groupes
Section intitulée « Les groupes »| Groupe | Signification | À vérifier |
|---|---|---|
accept |
Un vrai nom de personne, ou un mot de passe conforme aux règles du champ | L’application l’accepte tel quel, et le compte fonctionne ensuite |
reject |
Dépasse les limites du champ : trop long, vide, uniquement des espaces, un symbole là où aucun n’est autorisé | L’application le refuse avec un message clair, sans créer de compte |
store_as_text |
Ressemble à du code : HTML, balise script, injection SQL, expression de template | L’application le stocke et l’affiche exactement tel quel, sans jamais l’exécuter |
decide |
Les applications peuvent légitimement différer : chiffres dans un nom, emoji, espaces autour, uniquement des chiffres dans un mot de passe | Notez ce qu’a fait l’application : acceptée, refusée ou modifiée (tronquée, échappée, raccourcie) |
Passez le champ (first_name, last_name, full_name ou display_name) et sa longueur maximale s’il en a une, pour que la liste contienne un nom exactement de cette longueur et un nom d’un caractère de plus.
| Groupe | Valeurs |
|---|---|
| Accepter | O'Brien, Smith-Jones, Mary Ann, J. R., Jean-Luc, D'Angelo, José, Zoë, Ñandú, Søren, Straße, Łukasz, İnci, 李, さくら, 김, Мария, Ελένη, محمد, דוד, प्रिया, สมชาย, une seule lettre, exactement le maximum |
| Refuser | Un caractère de plus que le maximum, vide, uniquement des espaces |
| Stocker comme texte | <b>Jane</b>, <script>alert(1)</script>, Robert'); DROP TABLE students;--, {{7*7}}, =1+1, Jane%00Doe |
| À décider | Jane2, 3M, ***, ---, Jane&Co, A/S, Dr., #1, Jane 🌸, une espace sans chasse à l’intérieur, des espaces avant et après, é composé et décomposé, et 64, 128 et 255 caractères quand aucun maximum n’est indiqué |
Les noms arabes et hébreux s’écrivent de droite à gauche, le devanagari comporte des signes combinants et le thaï n’a pas d’espaces entre les mots : chacun piège un type de validation différent. Les é composé et décomposé sont le même nom dans deux encodages ; une application qui ne normalise pas peut stocker deux comptes pour une seule personne.
Mots de passe
Section intitulée « Mots de passe »Passez les règles du champ : min_length (8 par défaut), max_length (64 par défaut) et si les symbols sont autorisés (oui par défaut). Chaque mot de passe est créé à neuf avec un générateur aléatoire sécurisé : deux appels n’en partagent jamais un.
| Groupe | Valeurs |
|---|---|
| Accepter | Exactement le minimum, exactement le maximum et (là où les symboles sont autorisés) chaque classe : !@#$%, -_+=, ()[]{}<>, guillemets, barre oblique inverse, espace à l’intérieur, éüñ |
| Refuser | Un caractère de moins que le minimum, un de plus que le maximum, un symbole là où aucun n’est autorisé |
| À décider | Uniquement des chiffres, uniquement des minuscules, une espace au début, une espace à la fin, un emoji, é composé et décomposé, et quand le maximum dépasse 72, deux mots de passe partageant leurs 72 premiers octets |
Définissez chaque mot de passe accepté avec le formulaire, puis connectez-vous avec : un mot de passe accepté mais tronqué, raccourci ou réencodé à la saisie ne permettra pas de se connecter tel quel. bcrypt ne lit que les 72 premiers octets : le second mot de passe de la paire de 72 octets ne doit donc pas permettre de se connecter à la place du premier.
Présentez les résultats sous forme de tableau : la valeur, ce qu’elle teste, si le formulaire l’a acceptée, ce que l’application a stocké (tel quel ou modifié) et, pour les mots de passe, si la connexion a fonctionné. Le skill signup-form-email-validation le fait pour les adresses, les noms et les mots de passe ensemble.
Précautions
Section intitulée « Précautions »- Chaque valeur acceptée crée un compte distinct dans l’application. Testez sur un environnement de préproduction, ou supprimez-les ensuite.
- Les chaînes d’injection sont du texte inoffensif. Elles vérifient seulement que l’application les traite comme du texte ; ne les utilisez jamais contre une application qui ne vous appartient pas ou que vous n’êtes pas autorisé à tester.
- Dans un shell, mettez les valeurs entre guillemets :
',",\,&,;,<et>y ont une signification.
Une question sur cette page ?
Posez votre question dans la langue de votre choix. La documentation peut y répondre tout de suite, ou vous pouvez l'envoyer à l'équipe Proxy Mail QA, qui répond en anglais.