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í.
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.