コンテンツにスキップ

登録フォームで問題が起きるのはメールフィールドだけではありません。アポストロフィを含む名前が拒否される、タイ語の名前が途中で切れる、スペースを含むパスワードが黙って切り詰められる、<b>Jane</b> がプロフィールページで太字になる、といったことが起きます。Proxy Mail QA は、珍しいアドレス がメールフィールドに対して行うように、フォームの名前とパスワードのフィールド用にすぐ使える値を、アプリがそれぞれをどう扱うべきかでグループ分けして提供します。

  • エージェント:MCP server の get_name_variants と get_password_variants。エージェントが各値をフォームに入力し、アプリの動作を報告します。
  • テスト:npm パッケージ の qa.nameVariants() と qa.passwordVariants()、Python ヘルパー の name_variants() と password_variants()、または REST API の GET /v1/variants/names と GET /v1/variants/passwords。
  • 手動:アプリの新しいアドレスでは、ペルソナにエッジケースの名を提示します。Proxy Mail QA for Chrome は入力カードにエッジケースの名を、またフィールド自体のルールに合うエッジケースのパスワードを提示します。

各値には tests(確認する内容)と value(正確に入力する文字列)が付きます。

グループ 意味 確認する内容
accept 実在の人の名前、またはフィールドのルール内のパスワード アプリが入力どおりに受け付け、その後アカウントが正常に動作する
reject フィールド自体の上限を超える:長すぎる、空、スペースのみ、記号が許可されていない場所の記号 アプリがわかりやすいメッセージで拒否し、アカウントを作成しない
store_as_text コードのように見える:HTML、script タグ、SQL インジェクション、テンプレート式 アプリが入力どおりに保存・表示し、決して実行しない
decide アプリによって扱いが異なって当然のもの:名前の数字、絵文字、前後のスペース、数字のみのパスワード アプリの動作を記録する:受け付けた、拒否した、または変更した(切り詰め、エスケープ、短縮)

フィールド(first_name、last_name、full_name、display_name)と、あれば最大長を渡します。これで、ちょうどその長さの名前と 1 文字超える名前が一覧に含まれます。

グループ 値
受け付ける O'Brien、Smith-Jones、Mary Ann、J. R.、Jean-Luc、D'Angelo、José、Zoë、Ñandú、Søren、Straße、Łukasz、İnci、李、さくら、김、Мария、Ελένη、محمد、דוד、प्रिया、สมชาย、1 文字、ちょうど最大長
拒否する 最大長を 1 文字超える、空、スペースのみ
テキストとして保存する <b>Jane</b>, <script>alert(1)</script>, Robert'); DROP TABLE students;--, {{7*7}}, =1+1, Jane%00Doe
判断する Jane2、3M、***、---、Jane&Co、A/S、Dr.、#1、Jane 🌸、内部のゼロ幅スペース、前後のスペース、合成済みと分解済みの é、最大長の指定がない場合は 64、128、255 文字

アラビア語とヘブライ語の名前は右から左に書かれ、デーヴァナーガリーには結合記号があり、タイ語には単語間のスペースがありません。それぞれ異なる種類の検証でつまずきます。合成済みと分解済みの é は、2 通りのエンコードによる同じ名前です。正規化しないアプリは、1 人に 2 つのアカウントを保存してしまうことがあります。

フィールドのルールを渡します:min_length(既定値 8)、max_length(既定値 64)、symbols を許可するか(既定値は許可)。パスワードは毎回安全な乱数生成器で新しく作られるので、呼び出し間で同じものになることはありません。

グループ 値
受け付ける ちょうど最小長、ちょうど最大長、(記号が許可されている場合)各種類:!@#$%、-_+=、()[]{}<>、引用符、バックスラッシュ、内部のスペース、éüñ
拒否する 最小長より 1 文字短い、最大長より 1 文字長い、記号が許可されていない場所の記号
判断する 数字のみ、小文字のみ、先頭のスペース、末尾のスペース、絵文字、合成済みと分解済みの é、最大長が 72 を超える場合は先頭 72 バイトが同じ 2 つのパスワード

受け付けられた各パスワードをフォームで設定し、そのパスワードでサインインします。受け付けられても、途中で切り詰め、短縮、再エンコードされたパスワードでは、入力どおりにサインインできません。bcrypt は先頭 72 バイトしか読まないため、72 バイトのペアの 2 つ目のパスワードで 1 つ目としてサインインできてはいけません。

結果は表で報告します:値、テストする内容、フォームが受け付けたか、アプリが保存した内容(入力どおりか変更されたか)、パスワードの場合はサインインできたか。signup-form-email-validation の スキル は、アドレス、名前、パスワードをまとめてこれを行います。

  • 受け付けられた値ごとに、アプリに別のアカウントが作成されます。ステージング環境でテストするか、後で削除してください。
  • インジェクション用の文字列は無害なテキストです。アプリがテキストとして扱うかを確認するだけです。自分が所有していない、またはテストを許可されていないアプリに対しては決して使わないでください。
  • シェルでは値を引用符で囲んでください。'、"、\、&、;、<、> はシェルで特別な意味を持ちます。

このページについて質問がありますか?

質問はどの言語でもかまいません。ドキュメントからすぐに回答を得ることも、Proxy Mail QA チームに質問を送ることもできます。チームからの返信は英語です。