Zum Inhalt springen

Das 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.

  • Ein Agent: get_name_variants und get_password_variants auf dem MCP server. Der Agent tippt jeden Wert ins Formular und berichtet, was die App getan hat.
  • Ein Test: qa.nameVariants() und qa.passwordVariants() im npm-Paket, name_variants() und password_variants() im Python-Helper oder GET /v1/variants/names und GET /v1/variants/passwords in 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).

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.

Ü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.

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.

  • 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.

Doku fragen