Techronnati Update |
Saved by Phpbb3 reCAPTCHA Plugin Posted: 26 Aug 2009 02:53 AM PDT Have you ever experienced getting a lot of spams in your PHPBB3 Forum lately? I’ve been actually monitoring my forums sections for the past 3-4 months until I discovered by chance I was already hijacked by the spam bots pretending to be real users to the discussion boards. The behavior seemed having a recognizable pattern. They simply put a link to their drug selling sites shown in their profile then manage to create several posts in some vulnerable board sections. You know some sorts of viagra sign ups crippling and making your board dirty and messy. Some tend to have the same IP Addresses, some even have good-to-copycat-real email accounts with gmail and yahoo suffixes masquerading as real users while others play with mail.ru and *.ru extensions at the least. No wonder, these were the tactics but there’s nothing new to me as i also fight these spams here on my wordpress blog installation (Thanks to akismet plugin). The only sad part which i have to handle was cleaning the records manually myself since they have created a lot of links/posts making my life miserable. At first, I was having seconds thoughts what transpired this event since i didn’t place any mod recently. Only to find out, a cracked was made available and was (able to be solved by spambots) in due time. Hmmm.. as i figured out, they were intelligent enough as i have expected. Hmmm…. At first i thought making a simple quick hack into the captcha code to base the image on a reasonably bland photographic background would make a difference but decided to implement a much more secure and widely used spam fighter in the net which is the Recaptcha plugin. This is just to make sure. You know how these spams work together to achieve their mission. Good thing was i was able to install recaptcha in minutes for my PHPBB3 Forum. I used to include Recaptcha code in other Forums (i.e. SMF) which i manage as well and so far i am happy the way it works. If you are not sure how this can be applied to your PHPBB3, then this procedure may come in handy which can also be found in: http://code.google.com/p/recaptcha/downloads/list Files you will need: reCAPTCHA PHP plugin, available at: http://code.google.com/p/recaptcha/downloads/list Extract the file ‘recaptchalib.php’ and place it in: %phpbb_root_path%/includes/captcha Files that will be modified in your phpBB3 directory: %phpbb_root_path%/styles/prosilver/template/ucp_register.html %phpbb_root_path%/includes/ucp/ucp_register.php Code to modify: In ucp_register.html, locate: <dd>{CONFIRM_IMG}</dd> Then delete the following lines of code or comment them out: <dd><input type=”text” name=”confirm_code” id=”confirm_code” size=”8″ maxlength=”8″ title=”{L_CONFIRM_CODE}” /></dd> <dd>{L_CONFIRM_CODE_EXPLAIN}</dd> In ucp_register.php, there are many changes that you’ll have to make, so I’ll have to make the instructions compact. /*Step 1. Place this code before the line “class ucp_register,” which is near the top of ucp_register.php*/ require_once($phpbb_root_path . ‘includes/captcha/recaptchalib.’ . $phpEx); /*Step 2. Place this code after the line “global $config, $db, $user, $auth, $template, $phpbb_root_path, $phpEx;” which is a few lines after step 1.*/ // Get a key from http://recaptcha.net/api/getkey $publickey = ”; $privatekey = ”; # the response from reCAPTCHA $resp = null; # the error code from reCAPTCHA, if any $error = null; /*Step 3. Place this code on the line “$confirm_id = request_var(’confirm_id’, ”);” in other words, replace the original code with this new code*/ $confirm_id = (isset($_POST['recaptcha_response_field'])); /*Step 4. Comment out or delete the following line of code.*/ ‘confirm_code’ => array(’string’, !$config['enable_confirm'], 5, 8), /*Step 5a. Go to the section: // Visual Confirmation handling $wrong_confirm = false; if ($config['enable_confirm'])*/ if (!$confirm_id) { } else { /* Comment out or delete all code within the first else statement (which has nested if…else statements within it) and replace with the code in Step 5b.*/ } } /*Step 5b. Place the following code within the first else statement.*/ $resp = recaptcha_check_answer ($privatekey, $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]); if ($resp->is_valid == false) { $error[] = $user->lang['CONFIRM_CODE_WRONG']; $wrong_confirm = true; /*Step 6. Comment out or delete everything between the following two lines of code. The two lines themselves are also deleted. In total, you should be deleting about 13 non-empty lines of code*/ //first line of code. $code = gen_rand_string(mt_rand(5, 8)); //last line of code $db->sql_query($sql); /*Step 7. A few lines after the end of Step 6, replace “$confirm_image = ” and its values with the following line of code. Basically, you’re assigning the variable $confirm_image with a new value. $confirm_image = recaptcha_get_html($publickey, $error); Step 8. You should be done. I hope. It works for me on my development webserver, on a basically vanilla version of phpbb3. There you have it guys. Why don’t you try it? It’s worth your time and effort. Needless i say, this totally saved my boards for despair. =) Thanks to Recaptcha Plugin. . .Kudos to the creators/originators of this helpful plugin for making it FREE and ACCESSIBLE! You make our lives easier. CATCHA !!!=) http://code.google.com/p/recaptcha/downloads/list |
You are subscribed to email updates from Techronnati To stop receiving these emails, you may unsubscribe now. | Email delivery powered by Google |
Google Inc., 20 West Kinzie, Chicago IL USA 60610 |
0 comments:
Post a Comment