Page MenuHomePhabricator

hCaptcha: Implement mechanism to log about-to-be-published content when challenge is presented
Open, In Progress, Needs TriagePublic

Description

Summary

hCaptcha is configured in 99.9% passive mode. A challenge is presented when hCaptcha suspects a bot is involved. In these cases, we want to record the diff of the existing content to proposed new editor content, so we can analyze if the content was likely spam

Technical notes

  • Rely on confirmEditMerged hook to detect when challenge is presented after edit change, and compute diff change, and send a backend event to a schema
  • Add a separate schema to the schemas-event-secondary repo ( with a field proposed_content_diff which would be a unified diff string, T408613)

Acceptance criteria

  • The proposed changes to a page from an editor are logged in an event logging stream for further analysis when a challenge is presented

Event Timeline

sguebo_WMF changed the task status from Open to In Progress.Nov 1 2025, 3:07 AM
sguebo_WMF claimed this task.
sguebo_WMF updated the task description. (Show Details)

Change #1200439 had a related patch set uploaded (by Samuel (WMF); author: Samuel (WMF)):

[mediawiki/extensions/ConfirmEdit@master] hCaptcha: Log edit diff when challenge is shown

https://gerrit.wikimedia.org/r/1200439

Change #1201694 had a related patch set uploaded (by Samuel (WMF); author: Samuel (WMF)):

[integration/config@master] Zuul: ConfirmEdit extension: Add EventLogging dependecy

https://gerrit.wikimedia.org/r/1201694

Change #1201694 abandoned by Samuel (WMF):

[integration/config@master] Zuul: ConfirmEdit extension: Add EventLogging dependency

Reason:

We agreed on keeping instrumentation code in EventLogging, rather than moving it to ConfirmEdit.

https://gerrit.wikimedia.org/r/1201694

Change #1200439 abandoned by Samuel (WMF):

[mediawiki/extensions/ConfirmEdit@master] hCaptcha: Log edit diff when challenge is shown

Reason:

Logic will be moved to a separate patch in WikimediaEvents extension, rather than ConfirmEdit

https://gerrit.wikimedia.org/r/1200439

Change #1202641 had a related patch set uploaded (by Samuel (WMF); author: Samuel (WMF)):

[mediawiki/extensions/WikimediaEvents@master] Log edit diff when hCaptcha challenge is shown

https://gerrit.wikimedia.org/r/1202641

Change #1211295 had a related patch set uploaded (by Samuel (WMF); author: Samuel (WMF)):

[operations/mediawiki-config@master] Set $wgRateLimits['hcaptchaedit'] for edit attempt log

https://gerrit.wikimedia.org/r/1211295

Change #1212816 had a related patch set uploaded (by Samuel (WMF); author: Samuel (WMF)):

[mediawiki/extensions/WikimediaEvents@master] Refactor: Move editing session ID logic into service

https://gerrit.wikimedia.org/r/1212816

Change #1213468 had a related patch set uploaded (by Kosta Harlan; author: Kosta Harlan):

[operations/mediawiki-config@master] EventLogging: Register mediawiki.hcaptcha.edit stream

https://gerrit.wikimedia.org/r/1213468

Change #1212816 merged by jenkins-bot:

[mediawiki/extensions/WikimediaEvents@master] Refactor: Move editing session ID logic into service

https://gerrit.wikimedia.org/r/1212816

Change #1202641 merged by jenkins-bot:

[mediawiki/extensions/WikimediaEvents@master] hCaptcha: Log diff when challenge is presented

https://gerrit.wikimedia.org/r/1202641

Change #1213468 merged by jenkins-bot:

[operations/mediawiki-config@master] EventLogging: Register mediawiki.hcaptcha.edit stream

https://gerrit.wikimedia.org/r/1213468

Change #1211295 merged by jenkins-bot:

[operations/mediawiki-config@master] Set new $wgRateLimits config for edit attempt log

https://gerrit.wikimedia.org/r/1211295

Mentioned in SAL (#wikimedia-operations) [2025-12-01T15:01:17Z] <kharlan@deploy2002> Started scap sync-world: Backport for [[gerrit:1213468|EventLogging: Register mediawiki.hcaptcha.edit stream (T406865)]], [[gerrit:1211295|Set new $wgRateLimits config for edit attempt log (T406865)]]

Mentioned in SAL (#wikimedia-operations) [2025-12-01T15:03:18Z] <kharlan@deploy2002> kharlan, sguebo: Backport for [[gerrit:1213468|EventLogging: Register mediawiki.hcaptcha.edit stream (T406865)]], [[gerrit:1211295|Set new $wgRateLimits config for edit attempt log (T406865)]] synced to the testservers (see https://wikitech.wikimedia.org/wiki/Mwdebug). Changes can now be verified there.

Mentioned in SAL (#wikimedia-operations) [2025-12-01T15:12:20Z] <kharlan@deploy2002> Finished scap sync-world: Backport for [[gerrit:1213468|EventLogging: Register mediawiki.hcaptcha.edit stream (T406865)]], [[gerrit:1211295|Set new $wgRateLimits config for edit attempt log (T406865)]] (duration: 11m 03s)

Change #1214101 had a related patch set uploaded (by Kosta Harlan; author: Samuel (WMF)):

[mediawiki/extensions/WikimediaEvents@wmf/1.46.0-wmf.4] Refactor: Move editing session ID logic into service

https://gerrit.wikimedia.org/r/1214101

Change #1214102 had a related patch set uploaded (by Kosta Harlan; author: Samuel (WMF)):

[mediawiki/extensions/WikimediaEvents@wmf/1.46.0-wmf.4] hCaptcha: Log diff when challenge is presented

https://gerrit.wikimedia.org/r/1214102

Change #1214101 merged by jenkins-bot:

[mediawiki/extensions/WikimediaEvents@wmf/1.46.0-wmf.4] Refactor: Move editing session ID logic into service

https://gerrit.wikimedia.org/r/1214101

Change #1214102 merged by jenkins-bot:

[mediawiki/extensions/WikimediaEvents@wmf/1.46.0-wmf.4] hCaptcha: Log diff when challenge is presented

https://gerrit.wikimedia.org/r/1214102

Mentioned in SAL (#wikimedia-operations) [2025-12-02T20:30:02Z] <kharlan@deploy2002> Started scap sync-world: Backport for [[gerrit:1214101|Refactor: Move editing session ID logic into service (T406865)]], [[gerrit:1214102|hCaptcha: Log diff when challenge is presented (T406865)]]

Mentioned in SAL (#wikimedia-operations) [2025-12-02T21:15:55Z] <kharlan@deploy2002> kharlan: Backport for [[gerrit:1214101|Refactor: Move editing session ID logic into service (T406865)]], [[gerrit:1214102|hCaptcha: Log diff when challenge is presented (T406865)]] synced to the testservers (see https://wikitech.wikimedia.org/wiki/Mwdebug). Changes can now be verified there.

Mentioned in SAL (#wikimedia-operations) [2025-12-02T21:29:08Z] <kharlan@deploy2002> Finished scap sync-world: Backport for [[gerrit:1214101|Refactor: Move editing session ID logic into service (T406865)]], [[gerrit:1214102|hCaptcha: Log diff when challenge is presented (T406865)]] (duration: 59m 06s)