CS | EN

Jak zabránit spamování registračního formuláře v Joomla!

Máte webové stránky nebo eshop v redakčním systému Joomla! a každý den Vás otravují nesmyslné registrace uživatelů, kteří evidentně nejsou lidé, ale BOTi? V tomto článku se dozvíte, jak upravit kód vašeho webu tak, aby se tyto registrace automaticky zakazovaly.

webhosting WEDOS

Jak BOTi vyplňují registrační formuláře v Joomla!

Joomla! sama o sobě nepoužívá ochranu pomocí CAPTCHA, ani jinou ochranu proti spamu, a tak láká BOTy, aby vás tímto způsobem obtěžovali.

Problém by sice šel vyřešit i tak, že byste si v nastavení registrace aktivovali "Povolení dokončení registrace přes email", ale tím byste zase obtěžovali normální slušné uživatele a klesala by konverze.

Jak vyřešit problém se spamováním registračního formuláře Joomla?

Řešení je poměrně jednoduché a spočívá v úpravě dvou souborů Joomla!. BOTy odhalíme tak, že do registračního formuláře přidáme pole s nějakým lákavým názvem, jako je např. web, url, email atd., u kterého máme jistotu, že jej vždy vyplní. Toto pole ale skryjeme do divu, který má nastavený atribut visibility:hidden - tak jej skryjeme před očima běžného uživatele. Bot, který prochází zdrojový kód jej ale uvidí, vyplní, a tím ho dostanete do pasti. Když totiž vyplní neviditelné pole, vyskočí mu stránka 403 s titulkem "Vyplnil jsi neviditelné pole, jsi BOT" a registrace se zruší.

Návod na úpravu zdrojového kódu webu v Joomla!

1. Najděte soubor components/com_user/views/register/tmpl/default.php.

2. Kamkoliv mezi tagy označující formulář - form (např. na řádek 80), vložte tento kód:

<div style="visibility:hidden;height:1px">
<input type="text" name="url" value="" id="url" size="40" />
</div>

Uložte změny a upraveným souborem přepište aktuální soubor default.php.

3. Jako druhý si najděte soubor components/com_user/controller.php.

4. Otevřete jej v editoru html a najděte funkci register_save().

5. Vyberte text global $mainframe; a nahraďte jej tímto kódem:

global $mainframe;

if(isset($_POST['url'])&&$_POST['url']!=''){
JError::raiseError( 403, JText::_( 'Vyplnil jsi neviditelné pole, jsi BOT' ));
return;
}

// Check for request forgeries
JRequest::checkToken() or jexit( 'Invalid Token' );

6. Opět uložte změny a upraveným souborem přepište aktuální soubor controller.php.

Google

5.00 z 5 - 1 hlasů
Děkujeme za hodnocení. Pokud se vám článek líbil, budeme rádi, když jej budete sdílet dál!

Vytisknout   E-mail

Jsme tým ajťáků, které jejich práce baví a doufáme, že je to vidět. Milujeme redakční systémy Joomla!WordPress a eshop VirtueMart, ale pomůžeme vám i se SEO a texty pro web nebo správou sociálních sítí a PPC kampaní.

Našimi zákazníky jsou drobní živnostníci, malé a střední firmy, školy, ale i stavební firmy s milionovými obraty v České republice i v zahraničí. Baví nás pomáhat lidem plnit jejich sny, ať už jím je vlastní blog nebo prodej výrobků či služeb...


Ochrana soukromí | Mapa stránek

Slovy našich klientů

Flexibilita, rychlost a vstřícnost, to byl můj první dojem při zahájení spolupráce se StaWEBnice.

Oceňuji zejména sqělé a moderní návrhy řešení a jejich bezproblémovou implementaci na našich webech.

V současné době nám spravují 4 weby a jsme maximálně spokojeni.

Zavolejte nám

Napište nám na

Zastavte se za námi

Hojerova 1647/2, Kuřim

Napište nám
můžete ještě napsat 2000 znaků