vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 3.6 Add-ons (https://vborg.vbsupport.ru/forumdisplay.php?f=194)
-   -   Administrative and Maintenance Tools - Multiple Account Registration Prevention (https://vborg.vbsupport.ru/showthread.php?t=127045)

randominity 09-18-2006 10:00 PM

Multiple Account Registration Prevention
 
*Note* This requires the Multiple Account Login Detector (AE Detector) in order to function. Big thanks to MPDev for the AE Detector hack, I have used/modified his code for use in parts of this mod (with permission).

*Note 2* My forum's servers are driving me nuts right now, big load times, etc and I'm about to cut myself from waiting for a page to load - so I haven't thoroughly tested all the new goodies I've added. If you find that something doesn't work please let me know.

Description
When an user registers, this plugin checks for the cookie that the AE Detector sets, if it exists, then this plugin will move the user to a specified usergroup (default is to the (COPPA) Users Awaiting Moderation usergroup). This will now check the user's IP address upon registration, and if it matches any others, it will place them in the Multiple Account (MA) usergroup . Also you have the option to ban the new account if the old account was banned.

You can turn the new features on/off accordingly in the settings area.


Install / Upgrade
Download the attached XML file, and import it at
Admin Control Panel > Plugins & Products > Manage Products > Add/Import Product

Remember to "Allow Overwrite" if you are upgrading.

Mod Info
1 - Query
3 - Phrases
2 - Plugins
0 - Template
0 - Template Edits


v1.0.2
  • Fixed some major bugs that made the last release basically useless.
v1.0.1
  • There is now an option prevent account registrations based on IP addresses.
  • If a banned user attempts to create a new account, the new account will automatically be banned.
  • Multiple account registrations will now send a PM or make a thread
v1.0.0
  • Initial beta release


Please click "Install" if you have installed this mod! Thanks!

FleaBag 09-19-2006 06:12 PM

Nice hack! A lot of my users are logging in from college/work, using shared computers. Would be bad for me but I can see the benefit!

randominity 09-19-2006 06:33 PM

Keep in mind this doesn't affect the login process, just the registration. And I guess it doesn't really "prevent" registration, just sends it to a different registration process.

MPDev 09-19-2006 06:40 PM

Nice add-on! What a great idea.

randominity 09-19-2006 06:56 PM

Originally I had it set to "Moderate New Users" for vB, and I would have AE Detector make new threads in a forum for Multiple Accounts it found, but it got tedious having to look for 'em all.

So I finally got fed up and made this ^^

If anyone has any suggestions, I'm all ears... one thing I've noticed that would be helpful is to do the AE Detection process at the same hook as this plugin. For example, since I have AE Detector make a new thread; if a user tries to register, make a new thread saying "userx has tried to register account: usery" or something.

DementedMindz 09-19-2006 07:53 PM

randominity great addon just a quick question say I move them to banned usergroup, will it only move the name just registering or both names that match?

Peter_Rosado 09-19-2006 07:59 PM

I guess this doesn't work in 3.5.5 right? :(

randominity 09-19-2006 08:16 PM

Quote:

Originally Posted by DementedMindz
randominity great addon just a quick question say I move them to banned usergroup, will it only move the name just registering or both names that match?

just the name registering.

and I will post a 3.5.x version of the script in a little bit.

Snake 09-20-2006 09:03 AM

Excellent! I thank you for making this. :)

Nathan2006 09-20-2006 05:45 PM

Im going to try this :)

Thank you randominity

Install

Quarterbore 09-20-2006 05:57 PM

I had a major problem with the original hack as I did a site upgrade using Impex and MOST of my member's userid shifted. So, using this, I should be able to prevent these members from registereing unless they are clever enough to clear the cookies in their browser or register from a second PC that they had not previously logged in from...

I'll have to try it!

Works great even with my issues with duplicate IDs...

The only addition I would like to see is an option to send a PM or start a new thread when a member tries to join that was flagged as already as being a member with the other member ID info... The way this works the members is put in the moderated list but there is no easy way to know it is there or why.

Quarterbore 09-20-2006 07:33 PM

Woot... It works Now!!! I really needed this... I will leave it between the two coders that made the hacks to decide who deserves the credit as I just slapped the two pieces together....

PHP Code:

//if the cookie exists then we know that the user already has an account
if (isset($_COOKIE['IDstack']) && $vbulletin->options['marpon'])
{
    
//set the usergroup to the one specified in options, or Users Awaiting Moderation
    
$userdata->set('usergroupid'$vbulletin->options['marpusergroup']);

    
    
//Update their ID stack and PM or Post to thread

    
$idstack $_COOKIE['IDstack']; 
    
                                
$idstack .= ",{$vbulletin->userinfo['userid']},"
                                
setcookie("IDstack"$idstacktime()+10368000"/"); 
         
                                
$Unums split(","$idstack); 
                                
$andids null
                                
$numvs 0
                                 
                                for (
$i 0$i < (sizeof($Unums)); $i++)  
                                { 
                                    if( 
verify_id('user'$Unums[$i], FALSE, -1, -1) ) 
                                    { 
                                        if (!empty(
$Unums[$i]) && is_numeric($Unums[$i])) {         
                                            
$checkuser $vbulletin->db->query_first("SELECT username FROM " TABLE_PREFIX "user WHERE userid={$Unums[$i]}"); 
                                            if ( !empty(
$andids) ) $andids .= "and"
                                            
$andids .= " [url="$vbulletin->options['bburl'] ."/member.php?u=" $Unums[$i] . "] "$checkuser['username'] ."[/url] "
                                            
$numvs++; 
                                        } 
                                    } 
                                } 
                                 
                            
                                
$allowsmilie '1'
                                
$visible '1'
                                
//$message = construct_phrase($vbphrase['multiplelogin_alert'], htmlspecialchars_uni($vbulletin->userinfo['username']), $andids); 
                                
$message htmlspecialchars_uni($vbulletin->userinfo['username']) . " seems to be registering a multiple personality using $andids sharing the same computer."
    
                                
// get admin users 
                                
$adminusers split(","$vbulletin->options['ae_adminusers']); 
                                
$fromuser fetch_userinfo($vbulletin->options['ae_sender']); 
                                
$subject $vbulletin->userinfo['username'] . " opened another account"
                                 
                                
// create the DM to do error checking and insert the new PM (needs to be here) 
                                
$pmdm =& datamanager_init('PM'$vbulletinERRTYPE_SILENT); 
                                
$ipaddress $vbulletin->config['ae_adminip']; 
         
                                if(
$vbulletin->options['ae_sendpm'] == '1'
                                { 
                                    
$pmdm->set('fromuserid'$fromuser['userid']); 
                                    
$pmdm->set('fromusername'$fromuser['username']); 
                                    
$pmdm->set_info('reciept'false); 
                                    
$pmdm->set_info('savecopy'false); 
                                    
$pmdm->set('title'$subject); 
                                    
$pmdm->set('message'$message); 
                                    
$pmdm->set_recipients($vbulletin->options['ae_recipients'], $fromuser['permissions']); 
                                    
$pmdm->set('dateline'TIMENOW); 
                                    
$pmdm->save(); 
                                } 
         
                                if(
$vbulletin->options['ae_startthread'] == '1' AND $vbulletin->options['ae_forumid']) 
                                { 
                                    require_once(
DIR '/includes/class_dm_threadpost.php'); 
         
                                    
// setup variables 
                                    
$forumid $vbulletin->options['ae_forumid']; 
                                    
$threaddm = new vB_DataManager_Thread_FirstPost($vbulletinERRTYPE_STANDARD); 
                                         
                                    
// insert thread 
                                    
$threaddm->do_set('forumid'$forumid); 
                                    
$threaddm->do_set('userid'$fromuser['userid']); 
                                    
$threaddm->do_set('username'$fromuser['username']); 
                                    
$threaddm->do_set('pagetext'$message); 
                                    
$threaddm->do_set('title'$subject); 
                                    
$threaddm->do_set('allowsmilie'$allowsmilie); 
                                    
$threaddm->do_set('visible'$visible); 
                                    
$tid $threaddm->save(); 
         
                                    require_once(
DIR '/includes/functions_databuild.php'); 
                                    
build_forum_counters($forumid); 
                                } 


If this was wrong of me to post the code here with the code from the original AE detector mod, send me a PM and I will remove it...

randominity 09-21-2006 12:19 AM

I was gonna do the same thing, just had to study for exams this week ~~

Quarterbore 09-21-2006 01:22 AM

This fixed all my problems...

Now, I need to remove the code from the original hack that posts when they login as with almost 2000-members and about 1500 that have a new userid I got real tired of all the false hits... Now, I get a report when the new account is started and NOT when userids shift because of a site upgrade...

I have tested this quite a bit on my site (my hybrid of the two hacks) and it seems stable on my site and it would report as few as two or as many as I care to create! Simply awsome... Thanks!

DementedMindz 09-21-2006 09:37 AM

strange I had ae go off this morning yet it didnt move the new account into banned usergroup.

viyanali 09-21-2006 03:55 PM

really nice work. think evreyone who uses ae is searching for something like that.
Now my questions:)
is it possible that may a banned user will be put automaticly in the banned group? and a second suggestion(question) the automatic thread creation only works when the user logs out and logs in again. thats a problem because when i have to moderate the user i have to know wich usernames he/she had before. could be there a option to list all usernames from AE like the ipinfo hack.(without searching the threads:)
I think these two options would make this hacks perfect.:)

Quarterbore 09-21-2006 07:05 PM

Quote:

Originally Posted by viyanali
really nice work. think evreyone who uses ae is searching for something like that.
Now my questions:)
is it possible that may a banned user will be put automaticly in the banned group? and a second suggestion(question) the automatic thread creation only works when the user logs out and logs in again. thats a problem because when i have to moderate the user i have to know wich usernames he/she had before. could be there a option to list all usernames from AE like the ipinfo hack.(without searching the threads:)
I think these two options would make this hacks perfect.:)

The code I posted takes care of the second part... When a person registeres that already has the cookie on their machine they cause the generation of a new thread or PM (I did not test the PM as I have that disabled on my site) and the new thread lists all the accounts that person has.

As for the first question, that is a tougher issue... The cookie does contain an array of userids that the user had logged in with so I guess you could run the values in there against the banned usergroup. If you get a match then you could ban the new userid.. Personally, as long as they can't post they can't do my site too much harm so I am not going to code that myself...

viyanali 09-22-2006 12:56 PM

hmm thx:) that was what i needed..
The only thing is that there is a little bug. Because u hook the registration process location u get for a evrey multiple account registration try a thread wich means when somebody writes the informations and hits register and cant couse of for example wrong image verfication u get a thread opened. If then the user decided not to register u have a wrong thread.. and a second one is if the user trys to register and again for example he hits registration button 3 times couse he wrote always the code false u will get 3 threads and so on. I still use the code u sended but i made a new plugin with that code wich hooks the register_addmember_complete location. So its working without bugs now:)

murrtex 09-26-2006 12:45 PM

when I use firefox I can register from the other browsers..why??

randominity 09-28-2006 04:47 PM

Quote:

Originally Posted by murrtex
when I use firefox I can register from the other browsers..why??

because it is cookie based, each browser's cookies are different.

Tom1234 09-28-2006 05:19 PM

randominity,

How about incorporating Quarterbore's code (with viyanali's fix to hook the register_addmember_complete location instead) into a new release so we can properly have it post a new thread when the detector is tripped upon registration?

randominity 09-28-2006 05:31 PM

I'm working on this (plus more) as we speak :)

randominity 09-28-2006 09:40 PM

Again, I hate not being able to test all the features, but when I try to refresh a forum I just get a stupid file download dialog and the page refuses to load.

Hopefully everything works, but we all know how coding is :p

Tom1234 09-29-2006 06:57 AM

Quote:

Originally Posted by randominity
Again, I hate not being able to test all the features, but when I try to refresh a forum I just get a stupid file download dialog and the page refuses to load.

Hopefully everything works, but we all know how coding is :p

Ummm... are you saying that you have just released a new version here but it's not well tested?

Tom1234 09-29-2006 07:06 AM

I see you have added the following:

* There is now an option prevent account registrations based on IP addresses.

Isn't that capability already built into vBulletin?

* If a banned user attempts to create a new account, the new account will automatically be banned.

Is this configurable? That may not be desirable in the event that a shared computer (such as library) and web browser is used by both a banned user and legit new registrations.

* Multiple account registrations will now send a PM or make a thread

Great. Thanks.

randominity 09-29-2006 01:20 PM

Quote:

Originally Posted by Tom1234
I see you have added the following:

* There is now an option prevent account registrations based on IP addresses.

Isn't that capability already built into vBulletin?

I mean that it looks up the users IP address to see if there is already an account registered with the same IP.
Quote:

Originally Posted by Tom1234
* If a banned user attempts to create a new account, the new account will automatically be banned.

Is this configurable? That may not be desirable in the event that a shared computer (such as library) and web browser is used by both a banned user and legit new registrations.

Yes, all the new features are configurable.

h_kakashi 09-29-2006 02:53 PM

Great Idea and hack :)

DementedMindz 09-29-2006 05:25 PM

Just wondering why doesnt it change the user title if they are moved to banned usergroup? They get banned but there title stays as a regular member.

murrtex 09-29-2006 08:09 PM

sorry randominity it dosent work on me..I think it could be check IP..it would be better ;)
nevermind thanks

CSS59 09-29-2006 10:37 PM

thank you, this will help me a lot

DementedMindz 09-29-2006 11:23 PM

WOW this banned every new member who signed up today
(only since the new update last version worked great). I tried making a name from my girls house which it wouldnt even know my name or ip and it banned it too.

Nathan2006 09-30-2006 12:36 AM

After I installed this a few days of new members and them not posting I sat and wondered what was wrong.

So I had a look around and found all members were placed into email confirm and that was after they had all confirmed there email addresses.

So sorry I had to remove it and all my new members are posting as soon as they have signed up :)

I will still keep an eye on this thread tho ;)

DementedMindz 09-30-2006 02:13 AM

yeah mine would have done the same thing but I move mine to banned I got home with alot of emails asking why they were banned

EasyTarget 09-30-2006 03:31 PM

can you make it so that if it finds the cookie on the machine and the users userid isn't one of the exceptions then it moves them to a usergroup that we specify or just gives them a new error message like "Multiple accounts are disabled. If you are sharing a computer with someone and would like your own account please contact a staff member."

randominity 09-30-2006 03:35 PM

Quote:

Originally Posted by EasyTarget
can you make it so that if it finds the cookie on the machine and the users userid isn't one of the exceptions then it moves them to a usergroup that we specify or just gives them a new error message like "Multiple accounts are disabled. If you are sharing a computer with someone and would like your own account please contact a staff member."

o.O that's currently what it does (minus the error message).



working on a fix atm... just gotta test the autoban feature.

EasyTarget 09-30-2006 07:29 PM

sorry, I thought it was ip based. Its uses both I take it.

What about a page like banlist but it shows all users with multiple accounts or whatever? A very useful hack but I really don't want pm's or threads created, I'd much rather be able to see a list of names somewhere.

Peter_Rosado 09-30-2006 09:46 PM

Quote:

Originally Posted by Nathan2006
After I installed this a few days of new members and them not posting I sat and wondered what was wrong.

So I had a look around and found all members were placed into email confirm and that was after they had all confirmed there email addresses.

So sorry I had to remove it and all my new members are posting as soon as they have signed up :)

I will still keep an eye on this thread tho ;)

Happened to me too :hurt:

randominity 10-01-2006 07:49 PM

sorry, all problems should be fixed now ^^

murrtex 10-01-2006 08:12 PM

still I can register same IP and from different browsers....

randominity 10-02-2006 03:14 AM

Quote:

Originally Posted by murrtex
still I can register same IP and from different browsers....

make sure you have the option turned on to prevent registration from same IP addresses.


All times are GMT. The time now is 08:15 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.02120 seconds
  • Memory Usage 1,919KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_php_printable
  • (9)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (2)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (40)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.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/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.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
  • printthread_start
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete