Proof of Work captcha v Joomle: ochrana formulárov bez hádaniek a API kľúčov

Proof of Work captcha v Joomle: ochrana formulárov bez hádaniek a API kľúčov
Ilustračné foto: vytvorené umelou inteligenciou (AZOIA)

Otvoríte si ráno e-mail a v schránke kontaktného formulára dvadsaťsedem správ.

Predmet: „Rýchla pôžička bez registra" a „Vaša faktúra je pripravená". Roboty dávno prekonali obrázkové hádanky s autobusmi a semaformi. Proof of Work captcha funguje inak: namiesto hádania a externých služieb overí, že za formulárom sedí človek, pomocou výpočtu, ktorý robot spočíta drahšie než samotný spam.

Čo je Proof of Work captcha a prečo nie je ďalšia hádanka

Proof of Work (dôkaz vykonanej práce) je princíp, ktorý poznáte z kryptomien: počítač musí vyriešiť úlohu, ktorá je ľahká na overenie, ale náročná na vyriešenie. Pri captche to znamená, že prehliadač návštevníka vykoná výpočet, ktorého výsledok sa overí na strane servera výrazne rýchlejšie. Bežný človek o tom nevie, robot musí výpočet zopakovať pri každom pokuse.

Podstatný rozdiel oproti reCAPTCHA alebo hCaptcha: žiadny externý skript, žiadny API kľúč, žiadne odosielanie údajov tretiemu subjektu. V Joomle je to plugin v skupine captcha, ktorý si zapnete v rozšíreniach a priradíte k formulárom. Presný názov pluginu a jeho nastavenia si overte v aktuálnej dokumentácii k Joomle - jadro sa medzi verziami hýbe.

Kde to v Joomle reálne nasadíte

Captcha plugin sa dá priradiť ku kontaktnému formuláru, k registrácii, k resetu hesla a k akémukoľvek formuláru, ktorý používa captcha rozhranie jadra. Ak máte doplnok tretích strán (RSForm, Convert Forms, AcyMailing), overte, či volá jadrové captcha rozhranie - niektoré to robia cez vlastný mechanizmus a nový plugin im nič nepovie.

Postup nasadenia:

  1. Záloha pred zásahom. Celý web (súbory + databáza) a .htaccess. Bez zálohy nemeňte nič, čo sa týka prihlasovania alebo registrácie - pri zle nastavenej captche sa zamknete z vlastného administračného formulára.
  2. Aktualizujte na aktuálnu verziu Joomly cez komponent Aktualizácie Joomla. Predtým skontrolujte, či šablóna a doplnky deklarujú podporu danej verzie.
  3. V Rozšírenia → Doplnky nájdite captcha plugin Proof of Work, aktivujte ho a otvorte nastavenia. Náročnosť výpočtu nechajte na predvolenej hodnote - príliš vysoká spôsobí, že na starom mobile návštevník čaká päť sekúnd a odíde.
  4. V nastaveniach príslušného captcha pluginu (alebo v nastavení konkrétneho formulára) vyberte nový plugin ako predvolenú captchu.
  5. Otestujte v inkognito režime - odoslanie kontaktného formulára, registrácia nového účtu, reset hesla. Skontrolujte aj to, či sa formulár odošle pri vypnutom JavaScripte; ak nie, musíte mať záložnú captchu alebo aspoň jasnú chybovú hlášku.

Cesta späť: captchu prepnete na pôvodnú (alebo na žiadnu) a plugin deaktivujete. Ak sa pokazí prihlasovanie do administrácie, obnovte web zo zálohy - a presne preto máte zálohu.

Čo to rieši a čo nie

Proof of Work captcha dobre zastaví masový spam z botnetov, ktoré posielajú stovky požiadaviek za minútu - tie sa pri každom pokuse zaseknú na výpočte. Nezastaví cielený spam od človeka, ktorý si formulár vyplní ručne. Na to slúžia iné vrstvy: honeypot pole, časové oneskorenie odoslania, moderovanie a overenie e-mailu pri registrácii.

Pozor na jednu vec: Proof of Work zaťaží procesor návštevníka, nie servera. Na starom telefóne alebo v úspornom režime to môže trvať dlhšie. Ak prevádzkujete web pre seniorov alebo pre používateľov s obmedzeným pripojením, nastavte nižšiu náročnosť a otestujte to na reálnych zariadeniach, nie len na svojom notebooku.

Kedy siahnuť po platenej captche

Hranica, za ktorou sa oplatí platiť, je podľa mňa pri weboch s vysokým objemom registrácií, kde potrebujete štatistiky, správu pravidiel a adaptívnu náročnosť. Platené captcha služby ponúkajú správu a reporting - ale za cenu odosielania údajov návštevníkov tretiemu subjektu, čo pri webe s európskymi používateľmi znamená prácu navyše v zásadách ochrany osobných údajov. Pre bežný firemný web alebo e-shop do niekoľkých tisíc návštevníkov denne jadrové riešenie stačí.

Na čo sa pozrieť pred nasadením u klienta

  • Šablóna a jej prepisy formulárov. Ak šablóna nahrádza jadrový layout formulára, captcha sa nemusí zobraziť. Skontrolujte prepisy v templates/vaša_šablóna/html/.
  • Doplnky s vlastnými formulármi. Overte u vývojára, či volajú jadrové rozhranie. Opustené doplnky bez aktualizácií od roku 2023 to s veľkou pravdepodobnosťou nerobia.
  • Cache. Po zmene nastavení vyčistite cache Joomly aj tú na hostingu - inak testujete starú verziu formulára.
  • Prístupnosť. Captcha nesmie byť jediná prekážka. Ak web musí spĺňať požiadavky na prístupnosť, overte, či plugin ponúka alternatívu.

Pavlov servisný tip: Predtým, než captchu zapnete naostro, urobte si v kontaktnom formulári jeden testovací záznam s vlastnou adresou a poznamenajte si čas odoslania. Keď sa o týždeň ozve klient, že „formulár nefunguje", budete presne vedieť, či problém prišiel s captchou, alebo s niečím iným - a ušetríte si hodinu hľadania v logoch.

Zdroje

  • Joomla - dokumentácia k captcha pluginom, docs.joomla.org (citované 9. 11. 2026)
  • Joomla - zoznam rozšírení jadra a ich stavu, extensions.joomla.org (citované 9. 11. 2026)
  • OWASP - Proof of Work ako anti-automation mechanizmus, owasp.org (citované 9. 11. 2026)