Ungewöhnliche Namen und Passwörter
Automatisch aus dem Englischen übersetzt.
Auf Englisch lesenDas E-Mail-Feld ist nicht das einzige, bei dem Registrierungsformulare Fehler machen. Ein Name mit Apostroph wird abgelehnt, ein thailändischer Name wird halbiert, ein Passwort mit Leerzeichen wird stillschweigend gekürzt, und <b>Jane</b> erscheint fett auf der Profilseite. Proxy Mail QA liefert fertige Werte für die Namens- und Passwortfelder eines Formulars, so wie ungewöhnliche Adressen für das E-Mail-Feld, gruppiert danach, was die App mit jedem tun sollte.
Wo du sie bekommst
Abschnitt betitelt „Wo du sie bekommst“- Ein Agent:
get_name_variantsundget_password_variantsauf dem MCP server. Der Agent tippt jeden Wert ins Formular und berichtet, was die App getan hat. - Ein Test:
qa.nameVariants()undqa.passwordVariants()im npm-Paket,name_variants()undpassword_variants()im Python-Helper oderGET /v1/variants/namesundGET /v1/variants/passwordsin der REST API. - Von Hand: „Neue Adresse“ in der App bietet in der Persona einen Grenzfall-Vornamen an; Proxy Mail QA for Chrome bietet einen auf seinen Ausfüllkarten an, dazu ein Grenzfall-Passwort, das zu den Regeln des Felds passt.
Jeder Wert kommt mit tests (was er prüft) und value (was genau einzugeben ist).
Die Gruppen
Abschnitt betitelt „Die Gruppen“| Gruppe | Bedeutung | Was zu prüfen ist |
|---|---|---|
accept |
Der Name einer realen Person oder ein Passwort innerhalb der Regeln des Felds | Die App übernimmt ihn wie eingegeben, und das Konto funktioniert danach |
reject |
Verletzt die Grenzen des Felds: zu lang, leer, nur Leerzeichen, ein Symbol, wo keine erlaubt sind | Die App lehnt ihn mit einer klaren Meldung ab, ohne ein Konto anzulegen |
store_as_text |
Sieht aus wie Code: HTML, ein Script-Tag, eine SQL-Injection, ein Template-Ausdruck | Die App speichert und zeigt ihn genau wie eingegeben, führt ihn nie aus |
decide |
Apps verhalten sich hier zu Recht unterschiedlich: Ziffern in einem Namen, ein Emoji, umgebende Leerzeichen, nur Ziffern im Passwort | Notiere, was die App getan hat: akzeptiert, abgelehnt oder verändert (gekürzt, maskiert, abgeschnitten) |
Übergib das Feld (first_name, last_name, full_name oder display_name) und seine maximale Länge, falls es eine gibt, damit die Liste einen Namen mit genau dieser Länge und einen mit einem Zeichen mehr enthält.
| Gruppe | Werte |
|---|---|
| Akzeptieren | O'Brien, Smith-Jones, Mary Ann, J. R., Jean-Luc, D'Angelo, José, Zoë, Ñandú, Søren, Straße, Łukasz, İnci, 李, さくら, 김, Мария, Ελένη, محمد, דוד, प्रिया, สมชาย, ein Buchstabe, genau das Maximum |
| Ablehnen | Eins über dem Maximum, leer, nur Leerzeichen |
| Als Text speichern | <b>Jane</b>, <script>alert(1)</script>, Robert'); DROP TABLE students;--, {{7*7}}, =1+1, Jane%00Doe |
| Entscheiden | Jane2, 3M, ***, ---, Jane&Co, A/S, Dr., #1, Jane 🌸, ein Leerzeichen ohne Breite im Namen, Leerzeichen davor und danach, é zusammengesetzt und zerlegt sowie 64, 128 und 255 Zeichen, wenn kein Maximum angegeben ist |
Arabische und hebräische Namen werden von rechts nach links geschrieben, Devanagari enthält kombinierende Zeichen, und Thai hat keine Leerzeichen zwischen Wörtern: Jedes bringt eine andere Art von Validierung zu Fall. Das zusammengesetzte und das zerlegte é sind derselbe Name in zwei Kodierungen; eine App, die nicht normalisiert, kann zwei Konten für eine Person speichern.
Passwörter
Abschnitt betitelt „Passwörter“Übergib die Regeln des Felds: min_length (Standard 8), max_length (Standard 64) und ob symbols erlaubt sind (Standard ja). Jedes Passwort wird mit einem sicheren Zufallsgenerator neu erzeugt, sodass keine zwei Aufrufe dasselbe bekommen.
| Gruppe | Werte |
|---|---|
| Akzeptieren | Genau das Minimum, genau das Maximum und (wo Symbole erlaubt sind) jede Klasse: !@#$%, -_+=, ()[]{}<>, Anführungszeichen, ein Backslash, ein Leerzeichen im Passwort, éüñ |
| Ablehnen | Eins unter dem Minimum, eins über dem Maximum, ein Symbol, wo keine erlaubt sind |
| Entscheiden | Nur Ziffern, nur Kleinbuchstaben, ein Leerzeichen am Anfang, ein Leerzeichen am Ende, ein Emoji, é zusammengesetzt und zerlegt sowie, wenn das Maximum über 72 liegt, zwei Passwörter mit denselben ersten 72 Bytes |
Setze jedes akzeptierte Passwort über das Formular und melde dich dann damit an: Ein Passwort, das akzeptiert, aber beim Speichern gekürzt, abgeschnitten oder umkodiert wird, funktioniert beim Anmelden nicht wie eingegeben. bcrypt liest nur die ersten 72 Bytes, daher darf das zweite Passwort des 72-Byte-Paars nicht als das erste anmelden.
Berichten
Abschnitt betitelt „Berichten“Berichte die Ergebnisse als Tabelle: der Wert, was er testet, ob das Formular ihn akzeptiert hat, was die App gespeichert hat (wie eingegeben oder verändert) und bei Passwörtern, ob die Anmeldung funktioniert hat. Der signup-form-email-validation-Skill erledigt das für Adressen, Namen und Passwörter zusammen.
Vorsichtsmaßnahmen
Abschnitt betitelt „Vorsichtsmaßnahmen“- Jeder akzeptierte Wert legt ein eigenes Konto in der App an. Teste in einer Staging-Umgebung oder lösche sie danach.
- Die Injection-Strings sind harmloser Text. Sie prüfen nur, ob die App sie als Text behandelt; setze sie nie gegen eine App ein, die dir nicht gehört oder die du nicht testen darfst.
- Setze die Werte in einer Shell in Anführungszeichen:
',",\,&,;,<und>haben dort eine Bedeutung.
Eine Frage zu dieser Seite?
Frag in jeder Sprache. Die Doku kann dir sofort antworten oder deine Frage an das Team von Proxy Mail QA schicken, das auf Englisch antwortet.