Go Back   vb.org Archive > vBulletin Modifications > vBulletin 4.x Modifications > vBulletin 4.x Add-ons
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
Spambot Stopper - Prevent Spambots from Registering Details »»
Spambot Stopper - Prevent Spambots from Registering
Version: 1.1.1, by kh99 kh99 is offline
Developer Last Online: Sep 2020 Show Printable Version Email this Page

Category: Anti-Spam Options - Version: 4.x.x Rating:
Released: 01-31-2013 Last Update: 02-15-2013 Installs: 443
Uses Plugins Auto-Templates
Re-useable Code Translations  
No support by the author.

What is it?
----------------------------
This mod rejects registrations where the form is filled out in less than a minimum time. You can configure one of the following actions to be taken when an automated registration is detected:

- Show a "No Permissions" page
- Display the "Successful Registration" message but without creating an account
- Redirect the user to any URL you choose
- Reload the registration page with an error message of your choosing

You can also provide a list of email addresses to be notified each time a registration is blocked.

Added for version 1.1.1: Time delay enforcer, maximum time option, time limits to cut down on email notifications, posting to a thread.

In the future, I'd like to add some simple logging and statistics, and a summary type of email notification (because people seem to quickly get tired of the single emails).

Note: I coded this myself from scratch, but I would like to acknowledge a couple of previous mods that used this same idea, by users Calorie and noppid, and maybe others. In any case, I believe this one adds some features that the others don't have.

Other advantages: no ads or links, no abuse of update notifications, no disappearing features, no threats to delete the mod (it will never be deleted, at least by me). Also, translations are allowed.

Installation:
----------------------------
1) If you have "Is Bot", "Stop the Registration Bots", "Spammers Suck!", or another mod that works on registration time, note any admincp settings for that mod then uninstall it.

2) Import the product XML file from the Product Manager.

3) Go to Settings > Options > Spambot Stopper Options and configure the desired settings.

4) IMPORTANT: try to register a new user to make sure that there are no problems with humans registering. If you want, you can also temporarily set the minimum time to a higher value (like 60 seconds) and test to see if the spammer rejection is working.



History:
----------------------------
1.1.1 (Feb 16, 2013)
  • Added timer for enforcing minimum time
  • Added maximum registration time limit
  • Added time limits for email notifications
  • Added posting notificatiosn to a thread

1.0.1 (Feb 01, 2013)
  • Fixed bug
  • Added check for fake timestamps

1.0 (Jan 31, 2013)
  • Initial Release

Download Now

File Type: zip product-kh99_spambot_stopper_1.1.1.zip (111.5 KB, 2335 views)

Screenshots

File Type: jpg sg1.jpg (118.3 KB, 0 views)

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.

Comments
  #472  
Old 02-23-2015, 07:56 PM
Max Taxable's Avatar
Max Taxable Max Taxable is offline
 
Join Date: Feb 2011
Posts: 3,134
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by kh99 View Post
Right, but I was talking about the minimum time. As an extreme example of the point I was making, maybe your registration form takes an average of 45 seconds for humans to fill out. Well, to defeat hypothetical spambots that know how to delay, you could say I'll make my minimum 120 seconds and humans will have to wait for the timer to run out. But that would be annoying.

Anyway, let's just enjoy the fact that bots don't seem to be getting through.
And of course, the email reports your mod generates do tell us the times used by the bots, and why they failed register. And I spent a whole year charting them. Speed is their whole business.

I never used the "wait for time to expire" feature though. It tips off the minimum time setting.
Reply With Quote
  #473  
Old 03-05-2015, 10:52 PM
apleschu apleschu is offline
 
Join Date: Aug 2005
Posts: 28
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I have added a little bit of functionality to spambot blocker. Mainly it is to write all the attempts of spambots trying to register into a log, well, actually a DB table, so that those attempts can be data-mined afterwards. E.g. that way I can see with certainty, what I already suspected: more than 80% of all spammers are using @yahoo.com email addresses.

I am attaching a few screenshots of the results of the data captured for two weeks now. If anybody is interested in the changes, post here and I will create a list of changes.

A live version of those pages can be found at: http://www.rx3forums.com/forums/pages.php?pageid=4
Reply With Quote
  #474  
Old 03-18-2015, 10:30 PM
apleschu apleschu is offline
 
Join Date: Aug 2005
Posts: 28
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Added another feature to this mod: Now it does add the spammers IP address to the list of banned IPs. That way the first time they try to register is also their last time. Since that list could potentially get rather long I am currently discussing to change this and put the list of blocked IPs into the DB into its own table. That way access would not slow down dramatically over time but stay rather rather constant and would only be one (rather simple) SQL statement.

Thoughts?
Reply With Quote
  #475  
Old 03-19-2015, 04:24 PM
409industries 409industries is offline
 
Join Date: Jan 2008
Posts: 63
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by apleschu View Post
Added another feature to this mod: Now it does add the spammers IP address to the list of banned IPs. That way the first time they try to register is also their last time. Since that list could potentially get rather long I am currently discussing to change this and put the list of blocked IPs into the DB into its own table. That way access would not slow down dramatically over time but stay rather rather constant and would only be one (rather simple) SQL statement.

Thoughts?
This is a brilliant idea IMO. Would there be a way to choose in the admin panel if you wanted to have the IP's added to the banned IP list in Settings > Options > User Banning Options or via a separate DB table?
Reply With Quote
  #476  
Old 03-19-2015, 04:46 PM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

apleschu has been kind enough to share his additions, but I haven't had a chance to release them yet. But I will.

Regarding the banned ip lookup, I don't really know what to recommend when it comes to that kind of thing. But I remember a few years ago we tried this thing called zbblock which automatically blocked IPs, and the way it works is to ban one it appends it to a file (separated from the preceding one by a comma). Then to check an ip it does file_get_contents, then uses the php function substr_count. Anyway, just another idea. Edit: ...but now that I think about it, that was probably done because zbblock doesn't use a database at all. Although it does have the advantage of being able to do it's work before vbulletin does it's initialization.
Reply With Quote
  #477  
Old 03-19-2015, 09:14 PM
apleschu apleschu is offline
 
Join Date: Aug 2005
Posts: 28
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by kh99 View Post
apleschu has been kind enough to share his additions, but I haven't had a chance to release them yet. But I will.

Regarding the banned ip lookup, I don't really know what to recommend when it comes to that kind of thing. But I remember a few years ago we tried this thing called zbblock which automatically blocked IPs, and the way it works is to ban one it appends it to a file (separated from the preceding one by a comma). Then to check an ip it does file_get_contents, then uses the php function substr_count. Anyway, just another idea. Edit: ...but now that I think about it, that was probably done because zbblock doesn't use a database at all. Although it does have the advantage of being able to do it's work before vbulletin does it's initialization.
Right now I have the blocked IPs in the default blocked IP list. *I* am a fan of using standard facilities unless there is a need not to, so for now I see no reason not to keep the list of IPs in the default spot.

In addition I have set it up in a way so that the list is also sorted, so that it can be searched faster by a binary search rather than the linear search that is currently implemented. Either someone else is going to implement the binary of at some point in the future when I get to have too much time on my hands again I will change/add that

kh99: I am going to IM you what you need. Specifically because I made this already IPv6 safe So there are a few changes to the package I sent you, that was only IPv4
Reply With Quote
  #478  
Old 03-19-2015, 09:21 PM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

OK, sounds good. I guess I thought you wanted to change it because you thought keeping it in the setting might end up causing problems when it gets big, but I don't have any specific reason to think that myself.
Reply With Quote
  #479  
Old 03-19-2015, 09:27 PM
apleschu apleschu is offline
 
Join Date: Aug 2005
Posts: 28
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

honestly, I don't know yet. for now I let it coast and see where that goes. if I find the energy and time to implement a binary search then that would still be LOTS faster than any DB search. Although the memory use would be unpredictable, especially if that would be used by forums that have 10's of thousands of banned IP addresses. And with the voracity the spammers are trying to register at my tiny forum it can't take too long before I have that.

I guess I will cross that bridge when I get to it. Right now this works and it works nicely. Once a spammer is identified their IP is blocked for good and they will never again use processor cycles or even given a second chance to see if they got smarter.
Reply With Quote
  #480  
Old 03-20-2015, 09:19 PM
409industries 409industries is offline
 
Join Date: Jan 2008
Posts: 63
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by apleschu View Post
I guess I will cross that bridge when I get to it. Right now this works and it works nicely. Once a spammer is identified their IP is blocked for good and they will never again use processor cycles or even given a second chance to see if they got smarter.
You guys are the pros when it comes to figuring out which methods work best with the least overhead. If using the vBulletin "built-in" blocked IP section works good enough, then it should be just fine for my small forum as well. I generally like mods / plugins that don't make changes to databases anyway.

Just watching the SpamBot Stopper log the IP's of every attempt, i'm sure the IP lists will be in the thousands in no time. They're almost always IP's from China anyway.

EDIT:
Quote:
Originally Posted by apleschu View Post
Added another feature to this mod: Now it does add the spammers IP address to the list of banned IPs.
I forgot to ask. Does the latest version here in this thread need to be downloaded and installed to get gain this functionality?
Reply With Quote
  #481  
Old 03-26-2015, 10:28 PM
Alibass's Avatar
Alibass Alibass is offline
 
Join Date: Mar 2007
Posts: 615
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

hmmmm.... this Missing or invalid check value was mention but never answered.

I still get it ever so often...
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 02:35 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.05096 seconds
  • Memory Usage 2,372KB
  • Queries Executed 26 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (5)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (4)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (1)pagenav_pagelinkrel
  • (11)post_thanks_box
  • (15)post_thanks_box_bit
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (7)postbit_attachment
  • (11)postbit_onlinestatus
  • (11)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • fetch_musername
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • post_thanks_function_fetch_thanks_bit_start
  • post_thanks_function_show_thanks_date_start
  • post_thanks_function_show_thanks_date_end
  • post_thanks_function_fetch_thanks_bit_end
  • post_thanks_function_fetch_post_thanks_template_start
  • post_thanks_function_fetch_post_thanks_template_end
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_attachment
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete