Core Rule Set: random passwords pass on the remaining password fields (closes #288)
check / check (push) Failing after 6m24s

Each app's sign-in, sign-up, password change and reset fields that had no
exclusion now skip the 35 rules random passwords set off, on that app's
paths and only when the query has no field of that name. Added gitea,
Vaultwarden's admin token, WordPress pass1/pass2/post_password and its REST
password, Drupal's forms and JSON, MediaWiki retype and password, Mastodon's
challenge, and Nextcloud's confirm, reset, change, share and OCS fields.
Vaultwarden's clients send a hash, which needs no exclusion.

Model: opus-5-5
This commit is contained in:
sneak committed 2026-11-10 15:48:18 +00:00
1 parent 3268ec95c1
commit 0aec33b017
15 files changed
+853 -141

No files matched your search

+16
View File
@@ -25,6 +25,9 @@ const mediawikiUpload = "/wiki/Special:Upload"
// mediawikiSignIn is the address MediaWiki's sign-in form posts to.
const mediawikiSignIn = "/index.php?title=Special:UserLogin"
// mediawikiAccountChange is the page that changes a password.
const mediawikiAccountChange = "/wiki/Special:ChangeCredentials"
// mediawikiMove is the address MediaWiki's form for moving a page posts to.
const mediawikiMove = "/index.php?title=Special:MovePage&action=submit"
@@ -236,6 +239,19 @@ func TestMediaWikiAttacksAreRefusedInTheExcludedBodyFields(t *testing.T) {
}
}
func TestMediaWikiSignUpAndPasswordChangeFieldsPass(t *testing.T) {
t.Parallel()
change := []string{passwordKey, retypeKey}
wantPasswordFieldsPass(t, []passwordFields{
{"/wiki/Special:CreateAccount", formData, []string{retypeKey}},
{mediawikiAccountChange, formData, change},
{"/index.php/Special:ChangeCredentials", formData, change},
{mediawikiAPI, formData, []string{retypeKey}},
})
}
func TestMediaWikiPasswordsPass(t *testing.T) {
t.Parallel()