-
29
Apr
Weil ich der wachsenden Flut von Bot-Registrierungen in Joomla Einhalt gebieten wollte, habe ich mich nach Lösungen für das Problem im Internet umgesehen. Zuerst installierte ich das Joomla Plugin Bad Behavior, leider zeigte es keinerlei Wirkung, täglich registrierten sich 6-8 neue Bots. Dann versuchte ich es mit einem verstecktem Eingabe Feld im Registrierungsformular, bei der entsprechenden PHP-Abfrage musste ich allerdings passen. Letztenendes integrierte ich reCAPTCHA in mein Joomla Registrierungsformular. Seit diesem Zeitpunkt hat sich kein einziger Bot mehr registrieren können, reCAPTCHA erfüllt seine Aufgabe bisher sehr gut.
Der Einbau von reCAPTCHA in ein bestehendes Joomla Projekt gestaltet sich sehr einfach. Zuerst solltet ihr das für eure Version passende Plugin von dieser Webseite herunterladen…
Christoph Aeschlimann, hat ein paar Anpassungen am Plugin vorgenommen, unter anderem sind die benötigten Keys bereits im Plugin enthalten. Wer keinerlei Veränderungen an den entsprechenden Joomla Core-Dateien vorgenommen hat kann die auf der Webseite enthaltene Anleitung 1:1 umsetzen und schon ist reCAPTCHA einsatzbereit.
Da ich nur ein Captcha für mein Registrierungsformular benötigte, und ich ausserdem mein Registrierungsformular im Joomla Code angepasst hatte, bin ich ein wenig anders vorgegangen. In der Datei components/com_user/views/register/tmpl/default.php habe ich vor der Zeile:
<button class="button validate"><!--p echo JText::_('Register');--></button>
den folgenden Code eingefügt:
<!-- reCAPTCHA Start -->
<?php
require_once(JPATH_SITE.'/recaptcha/recaptchalib.php');
$rc = recaptcha_get_html();
if (!$rc->error) {
echo "<div style=\"margin:20px;\">";
echo $rc->captcha;
echo "</div>";
} else {
JError::raiseWarning('',JText::_($rc->error));
}
?>
<!-- reCAPTCHA Ende -->
Danach habe ich in der Datei components/com_user/controller.php vor der Zeile:
// If there was an error with registration, set the message and display form
den folgenden Code eingefügt:
//reCAPTCHA Start
require_once(JPATH_SITE.'/recaptcha/recaptchalib.php');
$resp = recaptcha_check_answer ($_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]);
if (!$resp->is_valid) {
JError::raiseWarning('',JText::_('RECAPTCHA INCORRECT'));
$this->setRedirect( $_SERVER['HTTP_REFERER'] );
return false;
}
//reCAPTCHA Ende
Nun habe ich in der deutschen Sprachdatei language/de-DE/de-DE.com_user.ini folgende Zeilen ganz am Ende der Datei angefügt:
RECAPTCHA API=Um CAPTCHA zu nutzen brauchst du einen API key von <a href="http://recaptcha.net/api/getkey">http://recaptcha.net/api/getkey</a> RECAPTCHA IP=Aus Sicherheitsgründen muss die IP-Adresse an reCAPTCHA übergeben werden. RECAPTCHA INCORRECT=Deine CAPTCHA Eingabe war leider nicht korrekt. Bitte versuche es noch einmal.
Zuletzt müssen nur noch die folgenden Dateien in Root-Verzeichnis von Joomla kopiert werden:
- recaptcha/recaptchalib.php
- recaptcha/recaptcha_data.php
Da ich meine Core-Dateien nicht einfach durch die des Plugin ersetzt habe, sondern den Captcha-Code von Hand eingefügt habe, sind alle meine vorher gemachten Veränderungen an den besagten Core-Dateien erhalten geblieben.
Freundliche Grüsse
Jan
- Geschrieben von: Jan | Kategorie CMS
- Wenn dir dieser Blog gefällt kannst du ihn in deinem Feed-Reader abonnieren. Mein RSS-Feed!










4 Kommentare zu “reCAPTCHA Einbau in das Joomla Registrierungsformular”
3 Mai 2009 00:00
Bad Behavior hat bei mir auch nicht funktioniert keine Ahnung warum. Ich hab auch mit vielen Sachen rumprobiert und bin bei reCaptcha hängengeblieben. Kann dir das nur bestätigen seitdem gibts keine Bot Anmeldungen mehr. Ich hab bei mir aber alle Dateien ausgetauscht so wie es vom Plugin vorgegeben wird.
Georg
6 Mai 2009 23:21
Nach einer Woche Registrierungsformular mit reCaptcha kann ich sagen das sich bis heute kein einziger Bot mehr angemeldet hat. Allerdings hat sich soeben ein User mit .ru Mailadresse angemeldet. Das ist an sich ja noch nicht verdächtig, eine gewisse Unruhe ist allerdings doch vorhanden bei mir. Sollten die Bots dazugelernt haben? Na mal sehen ob der User aspennarace bis morgen etwas ins Forum geschrieben hat.
Freundliche Grüsse
Jan
8 Mai 2009 19:53
Es scheint sich beim User aspennarace tatsächlich um einen Bot zu handeln. Eine Anfrage an die von ihm angegebene Emailadresse wurde nicht beantwortet. Ich habe den User aus der Datenbank gelöscht.
Macht mich ein bischen nachdenklich das ein Bot das Captcha umgehen kann. Heute wars eher ruhig, mal sehen ob das ein Einzelfall war. Ich wills mal hoffen.
Freundliche Grüsse
Jan
16 Juli 2011 15:27
Hallo,
mit diesem Plugin geht die Einbindung komplett automatisch:
EasyCalcCheck Plus - http://joomla-extensions.kubik-rubik.de/ecc-easycalccheck-plus
Gruß
Schreibe einen Kommentar