SMF Mod Site

Mod Name:
Bad Behavior for SMF mod
Created By:
Spam Prevention
First Created:
March 23, 2010, 04:38:22 PM
Last Modified:
December 27, 2015, 03:34:35 PM
Latest Version:
Compatible With:
1.1.13, 1.1.14, 1.1.15, 1.1.16, 1.1.18, 1.1.19, 1.1.21, 2.0 RC3, 2.0 RC4, 2.0 RC5, 2.0, 2.0.1, 2.0.2, 2.0.4, 2.0.6, 2.0.7, 2.0.10, 2.0.11
Total Downloads:

Download this mod (15kB) [861] (142kB) [656]
Manual Install Instructions for SMF

Below are some preview images of what the mod looks like when being used


Bad Behavior Mod
PHP-based solution for blocking link spam and robots
The Web's premier link spam killer

Written by:                   butchs
Current BB version:      2.2.17
Compatibility:               SMF 1.1.21 & SMF 2.0.11
Supported languages: english, spanish_es, spanish_es-utf8, spanish_latin
Translations:                Translations are accepted

Donations accepted to help support this mod (please specify the name of the mod when donating).

SMF integration for Bad Behavior / Bad Behaviour.  Which is a PHP-based solution for blocking link spam and the robots which deliver it.

The mod includes plenty information in the help icons.  Just click on the icons.

This is the first implementation of Bad Behavior / Bad Behaviour for one of the major forum platforms.  This port has more features than the Core and most Ports on the internet.  It has taken many hours of hard work to create this mod.  I sure hope that the fruits of my labor reduces spammery on your SMF forum!


To test:
To insure that Bad Behavior is functioning correctly you can add the sting "Bad Behavior Test" to the User Agent (UA) of a HTTP request from someone who is not in the whitelist and is not the administrator.

If you look at the page source (just below the title) you will see the speed of this mod at work:  <!-- Bad Behavior 2.2.17 run time: 3.025 ms -->

Bad Behavior / Bad Behaviour icons for your front page:
Show everyone that you have taken the care to protect your forum from spammery:

Code: [Select]
<p><a href="">
<img src=""
alt="Bad Behavior" height="15" width="80" /></a></p>>

Please copy the above master image to your site and adjust only the image link.  Let the bad bots come to Bad Behavior.

How Bad Behavior Works:
Bad Behavior complements other link spam solutions by acting as a gatekeeper, preventing spammers from ever delivering their junk, and in many cases, from ever reading your site in the first place. This keeps your sites load down, makes your site logs cleaner, and can help prevent denial of service conditions caused by spammers.

Bad Behavior manages to block nearly all link spam without ever looking at the spam. While it might be useful to do so, for performance reasons, Bad Behavior does not analyze received spam. Ive found that this way lies madness; spammers are constantly buying new domain names, so its possible to miss a lot of spam by looking at it.

Instead, Bad Behavior pioneered an HTTP fingerprinting approach. Instead of looking at the spam, we look at the spammer. Bad Behavior analyzes the HTTP headers, IP address, and other metadata regarding the request to determine if it is spammy or malicious. This approach has proved, as one user said, shockingly effective. After all, spammers write their bots on the cheap, and have little incentive to code very well. If they could code very well, they probably wouldnt be spammers.

When Bad Behavior looks at a request, it determines if the request matches a profile of known malicious or spammy activity, and falls outside the bounds of a normal human browsing the web. If so, the request is blocked. But a way out is provided for any human beings with unusual configurations or viruses/Trojans on their computer who may be blocked.

From the start, Bad Behavior has had two overriding design requirements. The first is that it must be fast. Users will get annoyed by waiting around for their traffic to be screened for spammery.  Bad Behaviors run time, which is typically measured in milliseconds, and can be cut to hundreds of microseconds for very high traffic sites.

The second requirement is that it must block as few legitimate users as possible, and when one is blocked, they must be able to unblock themselves through an action simple and fast enough that they can simply hit the browsers reload button once theyve completed the action.

Version History:
1.0.0 --  March 23, 2010
o   -  Initial release for SMF 2.0 RC2 & RC3 default theme only. Compatible with BB 2.1.2.
1.1.0 --  August 4, 2010
o   -  New compatibility with BB 2.1.4:  Added CloudFlare compatibility and one nasty anti-Forum program to the ban list.  This version requires updates of both part 1 and part 2.
1.1.1 --  August 7, 2010
o   -  An error was discovered in the "whitelist.ini" file.  Anyone who downloaded "" between August 4, 2010 and August 7, 2010, who used the "whitelist.ini" file from "" please download this new "" version.
1.2.0 -- August 8, 2010
o   -  "whitelist.ini" file has been re-written.  It is suggested that all users review and modify this file.  New compatibility with BB 2.1.5:  Fixed CloudFlare compatibility. MSN bot and ereg errors fixed in core.  All users should upgrade your "whitelist.ini" file.  This version requires updates of both part 1 and part 2.  Backup your "whitelist.ini" before upgrading.
1.3.0 --  November 6, 2010
o   -   Now compatible with SMF 2.0 RC4.  Improved roundtripdns and cache.  Added yahoo check (will temporarily reports error as msnbot - waiting for BB to catch up), auto purge of BB cache.  Removed cloudflare check due to DNS issues at cloudflare.  Fixed RC4 bugs in admin area that prevented saving and displaying of detailed reports.  Mod now has its own cache, it no longer requires SMF caching to be enabled.
1.4.0 -- February 20, 2011
o  - Mod Rewrite. Big thanks to BigGuy at SMFHelper for testing.  Mod is compatible with SMF 1.1.x, SMF 1.1.x Bugs fixed, detected by ac19189 & packman.  No changes for 2.0 RCx, Spanish Translation(s) - thanks xaquin, Added Project Honeypot to admin panel, blank UA can  be blocked.  Spanish language files now auto load, Changes for mod_security compatibility - thanks Darkness*, Update Bad Behavior core to 2.1.12, Fix for Undefined index: id_group & description of error link (thanks Dmytro) in 1.1.x.  - Bad Behavior core to 2.1.13
1.5.0 - June 05, 2011
o 1.5.0  - Added random Google safe honeypot, httpBL suspicious visitors are now logged.
o 1.5.1 - June 18, 2011 - badbehavior_httpblnote error in 1.1.x(djkimmel), 'http_headers' can't have a default value 2.0 & 1.1x(evanoliver), updated &
o 1.5.2 - July 10, 2011 - Can't have a default valueFile (evanoliver), added httpBL on/off line & API key check, improved whitelist.
o 1.5.3 - July 25, 2011 - Fixed rare error with Cloudflare Server, added suspicious BBC for SMF 2.0 ONLY, limited front page honeypots
o 1.5.4 - August 4, 2011 - Fixed integration bug thanks mediaworksmt, Completed http:BL & BB installation validation, Bad Behavior 2.1.14 update
o 1.5.5 - September 19, 2011 - Upgrade to 2.0.1, File-access disabled fixed for some servers (jbw-creA2s), improved map trap
o 1.5.6 - October 21, 2011 - 1.1.x db errors fix, updated core to 2.1.15
o 1.5.7 - December 16, 2011 - Anti-bot security fixes, all users should upgrade to this version.
o 1.5.8 - February 4, 2012 - Updated core to 2.2.1.
o 1.5.9 - March 11, 2012 - Revamped reverse proxy, Upgrade to 2.2.2.
o 1.5.10 - May 27, 2012 - Added Lazybones badbehavior_bbc.gif, Upgrade to 2.2.6, improved reverse proxy address, moved whitelist to admin, updated Spanish by xaquin
o 1.5.11 - June 24, 2012 - Upgrade to 2.2.7, text corrections a bug fix
o 1.5.12 - September 3, 2012 - Upgrade to 2.2.9
o 1.5.13- September 3, 2012 - Added IP sort & username for SMF 2.x only, Upgrade to 2.2.11
o 1.5.14 - December 9, 2012 - Improved TESTING, Removed badbehavior_log_table modsetting, Upgrade to 2.2.12
o 1.5.15 - December 13, 2012 - Upgrade to 2.2.13
o 1.5.16 - May 5, 2013 - revised mysql, honeypot link height thanks RustyBarnacle, Upgrade to 2.2.14, updated httpbl search engines
o 1.5.17 - June 30, 2013 - SMF 1.1.X ONLY -  fixed undefined variable- thanks chrishicks
o 1.5.18 - January 25, 2014 - Upgrade to 2.2.15, Search Engine DNS updated, minor changes installDB
o 1.5.19 - December 27, 2015 - Upgrade to 2.2.17, changed SPAM traps, improved cache

Terms of use

By downloading and/or using this MOD you agree to adhere to the following conditions for all versions of the Bad Behavior mod:
  • The license for the mod is not the same as the license for the core.
  • The Mod Author/Creator retains all rights to the code for the mod portion.
  • The Mod Author/Creator is not responsible for any incompatibilities of this mod with your forum.
  • You are FREE to use and customize this MOD on your Forum(s) in any way you see fit, however, in no way can the Author/Creator of this MOD be held responsible under any circumstances.
  • Commercial resale of this mod is prohibited without express written permission from the Mod Author/Creator.
  • You are FREE to redistribute this MOD in its original, released state ONLY!
  • Conversion, transfer or porting any portion of the mod Authors Creative Work, ideas, procedures and process to any SMF fork without the Authors explicit written permission is strictly prohibited.
  • These terms can be changed or appended at any time by the Mod Author/Creator without any prior notice.

mod bad-behavior

Antes de instalar este mod, establezca su zona horaria local en el archivo .htaccess o php.ini.

Como hacerlo en .htaccess:
Code: [Select]
#Establecer zona horaria
SetEnv TZ Europe/Madrid

Una lista de ubicaciones para que pueda elegir:

En la instalaci√≥n en SMF 2.0x o posterior, SMF puede preguntarle si desea "Restaurar permisos de archivo" para  ""..  No realice ning√∫n cambio!

Para probar:
Para asegurarse que Bad Behavior funciona correctamente puede agregar la cadena "Bad Behavior Test" al agente de usuario (User Agent) de una petición HTTP realizada por alguien que no conste en la lista de autorizados y no sea el administrador.

En el código fuente de la página (justo después del título) se puede ver la velocidad de trabajo de este mod:
<!-- Bad Behavior 2.2.17 run time: 3.025 ms -->