Feature Language Change Composer Dependency Changed NPM Resource Changed PR-6.1-dev Pending

User tests: Successful: Unsuccessful:

avatar SniperSister
SniperSister
29 Nov 2025

Summary of Changes

This PR adds a new captcha to Joomla core. It's based on the concept of "proof of work": it presents a math task to the user's browser that the browser can solve automatically. It's not supposed to proof humanship of the user, but to proof that the user is willing to invest the necessary time to solve the task.

That makes it an excellent fit for Joomla's usecase:

  • it does not rely on an external service, does not need an API key and does not have any privacy implications
  • it's based on an opensource library
  • it does not try to proof humanship - a fight that we can't win anyways
  • it's accessible

It's currently based on the altcha library, see https://altcha.org - please note the emphasize on "currently", as the rather generic naming of the plugin would allow core to switch to a different library in the future. A different implementation for altcha was already available as a 3rd party extension (see https://github.com/akeeba/plg_captcha_altcha/).

Testing Instructions

  • Apply the patch
  • Install the composer and npm dependencies
  • Discover, install and enable the plugin
  • Configure a contact form
  • Set the captcha as default captcha in the global configuration
  • Submit the form

Remarks and next steps

Altcha recommends to increase the difficulty of the captcha for repetitive submissions. This would require the implementation of a generic ratelimiting framework in the core and is on the agenda.

Sponsor

This PR is funded by GLS Parcel Services Germany, https://www.gls-pakete.de

Link to documentations

Please select:

  • Documentation link for docs.joomla.org:

  • No documentation changes for docs.joomla.org needed

  • Pull Request link for manual.joomla.org:

  • No documentation changes for manual.joomla.org needed

5be8013 29 Nov 2025 avatar SniperSister typo
avatar SniperSister SniperSister - open - 29 Nov 2025
avatar SniperSister SniperSister - change - 29 Nov 2025
Status New Pending
avatar joomla-cms-bot joomla-cms-bot - change - 29 Nov 2025
Category SQL Administration com_admin Postgresql Language & Strings Repository External Library Composer Change Installation NPM Change Front End Plugins
avatar brianteeman
brianteeman - comment - 29 Nov 2025

please alphasort the language strings

avatar SniperSister SniperSister - change - 29 Nov 2025
Labels Added: Language Change Composer Dependency Changed NPM Resource Changed PR-6.1-dev
avatar brianteeman
brianteeman - comment - 29 Nov 2025

I dont see why this should be in core and not an extension

avatar HLeithner
HLeithner - comment - 29 Nov 2025

I dont see why this should be in core and not an extension

it has already been approved by production department and is on the feature roadmap https://developer.joomla.org/strategy.html#roadmap

avatar SniperSister SniperSister - change - 29 Nov 2025
Labels Added: Feature
avatar SniperSister SniperSister - change - 30 Nov 2025
Title
[6.1] Add proof-of-work captcha
Draft: [6.1] Add proof-of-work captcha
avatar SniperSister SniperSister - edited - 30 Nov 2025
avatar SniperSister
SniperSister - comment - 30 Nov 2025

Side Note: will add a replay attack prevention, therefore it’s set to draft

avatar SniperSister
SniperSister - comment - 1 Dec 2025

Side Note: will add a replay attack prevention, therefore it’s set to draft

Done!

avatar brianteeman
brianteeman - comment - 1 Dec 2025

Please follow the style guide https://manual.joomla.org/docs/user-interface-text/words2watch/ so CAPTCHA is always capitalised.

And try to avoid "click" on and use "select" or something similar as you can't "click" on a touch device.

avatar SniperSister
SniperSister - comment - 1 Dec 2025

Done!

avatar brianteeman
brianteeman - comment - 1 Dec 2025

Please add this plugin to the array of core extensions in libraries\src\Extension\ExtensionHelper.php in a new group for captcha plugins

avatar joomla-cms-bot joomla-cms-bot - change - 1 Dec 2025
Category SQL Administration com_admin Postgresql Language & Strings Repository External Library Composer Change Installation NPM Change Front End Plugins SQL Administration com_admin Postgresql Language & Strings Repository External Library Composer Change Installation Libraries NPM Change Front End Plugins
avatar SniperSister SniperSister - change - 1 Dec 2025
Title
Draft: [6.1] Add proof-of-work captcha
[6.1] Add proof-of-work captcha
avatar SniperSister SniperSister - edited - 1 Dec 2025
avatar SniperSister
SniperSister - comment - 1 Dec 2025

Please add this plugin to the array of core extensions in libraries\src\Extension\ExtensionHelper.php in a new group for captcha plugins

Done!

avatar Fedik
Fedik - comment - 1 Dec 2025
avatar SniperSister
SniperSister - comment - 1 Dec 2025

Done

Add a Comment

Login with GitHub to post a comment