Joomla 6.1 přináší vlastní CAPTCHA typu Proof of Work, která nevyžaduje účet u Googlu ani API klíče. Ukážeme si, jak ji propojit s RSForm! Pro a jak vyřešit situaci, kdy CAPTCHA funguje na samostatné stránce formuláře, ale po vložení do článku nebo modulu zmizí.

Bez externí služby Výpočet probíhá v prohlížeči návštěvníka.
Bez API klíčů Není potřeba registrace u poskytovatele CAPTCHA.
Pro RSForm! Pro Využívá pole Joomla! Built-in Captcha.

Co je CAPTCHA Proof of Work?

Proof of Work neověřuje člověka pomocí obrázků, semaforů ani zaškrtávacího políčka „Nejsem robot“. Prohlížeč návštěvníka místo toho automaticky vyřeší malou výpočetní úlohu. Pro běžného návštěvníka jde o téměř neviditelný krok, ale při hromadném automatizovaném odesílání formulářů se výpočetní náročnost násobí a odesílání spamu se prodražuje.

Řešení je součástí jádra Joomla od verze 6.1. Nepotřebuje externí službu ani API klíč a podle projektu Joomla je založené na open-source knihovně ALTCHA.

Co budete potřebovat

  • Joomla 6.1 nebo novější řadu, která obsahuje CAPTCHA Proof of Work.
  • Aktuální a funkční instalaci RSForm! Pro.
  • Doplněk RSForm! Pro – Joomla! Captcha.
  • Oprávnění pro správu pluginů, globálního nastavení a formulářů.
  • Zálohu webu před instalací nebo změnou pluginů.

Doplněk RSForm! Pro – Joomla! Captcha umožňuje použít ve formuláři kterýkoli CAPTCHA plugin dostupný v Joomla. Díky tomu RSForm! Pro nemusí Proof of Work implementovat samostatně – využije CAPTCHA rozhraní Joomla.

1. Zapnutí Proof of Work v Joomla

Otevřete správu pluginů

V administraci přejděte do Systém → Správa → Pluginy. Do vyhledávání napište například Proof of Work nebo captcha.

Publikujte plugin CAPTCHA – Proof of Work

Zkontrolujte, že je plugin aktivní. Jeho přesný přeložený název se může podle jazykové verze administrace mírně lišit.

Nastavte jej jako výchozí CAPTCHA

Otevřete Systém → Globální nastavení → Web a v poli Výchozí CAPTCHA vyberte Proof of Work. Nastavení uložte.

2. Instalace a nastavení doplňku RSForm! Pro – Joomla! Captcha

Doplněk je dostupný v účtu RSJoomla v části stažených souborů. Po instalaci je potřeba publikovat plugin System – RSForm! Pro Joomla! Captcha.

Nainstalujte plugin RSForm! Pro – Joomla! Captcha

Balíček nainstalujte standardně přes Systém → Instalace → Rozšíření.

Publikujte integrační plugin

Ve správě pluginů vyhledejte System – RSForm! Pro Joomla! Captcha a zkontrolujte, že je aktivní.

Otevřete požadovaný formulář

Přejděte do Komponenty → RSForm! Pro → Manage Forms a upravte formulář, který chcete chránit.

Přidejte Joomla! Built-in Captcha

V seznamu komponent formuláře otevřete skupinu CAPTCHA a vyberte Joomla! Built-in Captcha. Pole pojmenujte a nastavte vlastní validační hlášku.

Vyberte typ CAPTCHA

Na kartě Attributes nastavte položku Captcha Type buď přímo na Proof of Work, nebo na Joomla! Default Captcha. Druhá varianta použije plugin zvolený v Globálním nastavení Joomla.

3. Jak vložit formulář do stránky

Samostatná položka menu RSForm! Pro

Nejjednodušší test provedete otevřením formuláře přímo přes jeho vlastní položku menu nebo přímou URL RSForm! Pro. Pokud zde Proof of Work funguje, je základní nastavení CAPTCHA správné.

Vložení formuláře tagem do článku

Formulář lze do článku vložit tagem, kde číslo představuje ID formuláře:

{rsform 5}

Pro tento způsob doporučuje RSJoomla používat Content – RSForm! Pro, protože formulář zpracuje už během generování stránky a Joomla může správně přidat potřebné JavaScripty CAPTCHA.

Vložení přes modul a loadposition

Další možností je publikovat formulář v modulu a pozici načíst do článku:

{loadposition kontaktni-formular}

Tento způsob může fungovat bez problémů, ale u CAPTCHA závislých na JavaScriptu je zásadní okamžik, kdy se formulář do stránky vykreslí. Pokud přímá stránka formuláře funguje, ale varianta přes modul nebo loadposition ne, nejde zpravidla o chybu samotného pole Proof of Work, ale o pořadí načítání formuláře a skriptů.

4. CAPTCHA funguje přímo, ale ne přes rsform nebo loadposition

Typický problém vypadá takto:

  • na přímé stránce RSForm! Pro je formulář i CAPTCHA v pořádku,
  • po vložení do článku přes tag {rsform ID} CAPTCHA chybí,
  • případně se zobrazí pouze popisek pole, ale nikoli funkční ověření,
  • stejný problém může nastat při načtení formuláře přes některé moduly nebo další rozšíření.

RSJoomla vysvětluje, že plugin System – RSForm! Pro může formulář vložit až po vykreslení stránky. Potřebný JavaScript pro Joomla CAPTCHA – například ALTCHA nebo Proof of Work – se pak nemusí přidat a inicializovat správně.

Vypnout

System – RSForm! Pro

Tento plugin může formulář zpracovat příliš pozdě, až po vytvoření hlavičky stránky.

Zapnout

Content – RSForm! Pro

Content plugin vykreslí formulář během generování obsahu, takže se potřebné CAPTCHA skripty mohou správně načíst.

Ve správě pluginů vyhledejte RSForm! Pro

Nejlépe filtrujte podle názvu RSForm a zkontrolujte pluginy skupiny System a Content.

Deaktivujte System – RSForm! Pro

Nezaměňujte jej s pluginem System – RSForm! Pro Joomla! Captcha, který zajišťuje propojení CAPTCHA a má zůstat aktivní.

Aktivujte Content – RSForm! Pro

Poté vložte formulář do článku pomocí tagu {rsform ID}.

Vymažte cache a stránku znovu otestujte

Vyčistěte cache Joomla, případně cache optimalizačního pluginu, CDN a prohlížeče. Testujte také v anonymním okně jako nepřihlášený návštěvník.

Pokud formulář původně načítáte přes modul a loadposition a Proof of Work stále nefunguje, otestujte stejný formulář přímo v článku pomocí {rsform ID} s aktivním Content pluginem. Tím snadno ověříte, zda problém způsobuje vykreslení modulu nebo vlastní konfigurace formuláře.

5. Kontrolní seznam při řešení problémů

  • Web používá Joomla 6.1 nebo novější kompatibilní vydání.
  • Plugin CAPTCHA – Proof of Work je publikovaný.
  • Proof of Work je vybraný jako výchozí CAPTCHA Joomla, případně přímo v RSForm! Pro.
  • Plugin System – RSForm! Pro Joomla! Captcha je nainstalovaný a publikovaný.
  • Formulář obsahuje pole Joomla! Built-in Captcha.
  • Pole není skryté podmíněným zobrazením nebo nevhodným layoutem.
  • Na stránce se nenacházejí dvě CAPTCHA se stejným identifikátorem.
  • Pro tag {rsform ID} je aktivní Content – RSForm! Pro.
  • Obecný System – RSForm! Pro je při popsaném problému deaktivovaný.
  • Cache Joomla, optimalizačního pluginu, CDN a prohlížeče byla vymazána.
  • Test proběhl jako nepřihlášený návštěvník v anonymním okně.
  • V konzoli prohlížeče nejsou JavaScriptové chyby.

Výhody Proof of Work oproti klasickému obrázkovému CAPTCHA

  • Návštěvník nemusí rozpoznávat obrázky ani opisovat znaky.
  • Není potřeba API klíč ani účet u externí služby.
  • Data se neposílají externímu CAPTCHA poskytovateli.
  • Ověření je přístupnější než úlohy založené na obrazech.
  • Správce webu není závislý na dostupnosti cizí služby.

Proof of Work není kouzelný filtr, který zastaví každý typ spamu. Je však užitečnou a uživatelsky nenápadnou vrstvou ochrany. U exponovaných formulářů ji lze doplnit například kontrolou obsahu, omezením četnosti odesílání, honeypotem a sledováním opakovaných pokusů.

Časté dotazy

Je Proof of Work součástí každé Joomla 6?

Vestavěná CAPTCHA Proof of Work byla přidána do Joomla 6.1. Na Joomla 6.0.x ji proto nemusíte v jádře najít.

Potřebuji pro Proof of Work účet Google nebo API klíč?

Ne. Joomla Proof of Work není závislá na externí službě a nevyžaduje registrační klíče.

Které pole mám přidat do RSForm! Pro?

Použijte pole Joomla! Built-in Captcha a v jeho atributech vyberte Proof of Work nebo Joomla! Default Captcha.

Proč funguje CAPTCHA na přímé URL formuláře, ale ne v článku?

Formulář může být do stránky vložen až po jejím vykreslení, takže se potřebné CAPTCHA skripty nenačtou správně. RSJoomla doporučuje vypnout obecný System – RSForm! Pro a zapnout Content – RSForm! Pro.

Mám vypnout také System – RSForm! Pro Joomla! Captcha?

Ne. Jde o jiný plugin, který propojuje RSForm! Pro s CAPTCHA pluginy Joomla. Aktivní má zůstat.

Mohu formulář dál vkládat přes loadposition?

Ano, ale záleží na způsobu vykreslení použitého modulu. Když Proof of Work přes loadposition nefunguje, otestujte formulář tagem {rsform ID} s aktivním Content – RSForm! Pro.

Proč se CAPTCHA nezobrazuje přihlášenému administrátorovi?

Zkontrolujte nastavení RSForm! Pro pro odstranění CAPTCHA přihlášeným uživatelům. Funkčnost vždy testujte také v anonymním okně jako běžný návštěvník.

Musím Proof of Work vybrat v každém formuláři?

Ne, pokud v poli RSForm! Pro použijete Joomla! Default Captcha a Proof of Work nastavíte globálně v Joomla.

Shrnutí

Pro propojení RSForm! Pro s CAPTCHA Proof of Work potřebujete Joomla 6.1, aktivní plugin Proof of Work a doplněk RSForm! Pro – Joomla! Captcha. Do formuláře přidejte pole Joomla! Built-in Captcha a zvolte Proof of Work nebo výchozí CAPTCHA Joomla.

Pokud CAPTCHA funguje na přímé stránce formuláře, ale zmizí po vložení přes tag nebo modul, zkontrolujte způsob vykreslení. Pro tag {rsform ID} doporučuje výrobce vypnout obecný System – RSForm! Pro a aktivovat Content – RSForm! Pro, aby byly potřebné skripty přidané už při generování stránky.

Použité zdroje