Signup abuse detection and blocking

Signup abuse detection and blocking [Paid] 1.15.6

No permission to buy ($45.00)
Maybe a suggestion for a future version - add ability to prevent trashmail registrations (or with an assignable score)?


Edit:
oops, already posted about that. Sorry :D

Haven't really looked into it. Mostly due to a lack of time
 
Last edited:
also is there something like a best practices guideline to getting the settings right? there are SO many options to choose from i'd hate to get this setup and start causing people issues.
 
thanks i'll give this a try. any other providers i should be blocking? we should make some sort of running blocklist resource. that might be handy.

also how do i handle addresses like these?

temptest707441421@gmail.com

a.l.ea.ikc.x.eni.ka@gmail.com
Blocklists manually updated are pointless as the time taken to update, is longer than the time to register a new domain to use for spam.

Xon has taken onboard the idea of using a service to filter out disposable email addresses though.

Not easily filtered (that type of spam) via Gmail, albeit look at the defaults because there's already something in the list like:
reject|....@

Other way is simply to force anyone signing up via Gmail to manual approval (which allows you to run other tests), or add like a +3|*@gmail.com making them a higher risk of flagging as spammers during signup.

also is there something like a best practices guideline to getting the settings right? there are SO many options to choose from i'd hate to get this setup and start causing people issues.
It's pretty straight forwards I've found. Focus on the basics, and I've left a lot on defaults.
 
  • Like
Reactions: Xon
In 1.5 I'm using TPU: Detect Spam Registrations.
I made it a little mod so it adds to the score the city and not only the country of the registrant (I have localized trolls!).
Is it already possible with this addon?
 
score the city and not only the country of the registrant
Geo IP Location to specific cities is never terribly accurate.

TCPIP and IP addressing as a core protocol is never really designed with location in mind.

I'm in Australia and with my ISP often I get IPs Geo locate all across the country, often either on the complete other side of Australia, or other states. It's never been remotely close to accurate for me, as it depends how the ISP is setup.
 
  • Like
Reactions: Xon
Hello,

I'm getting this error now and then...


  • XF\Db\DuplicateKeyException: MySQL query error [1062]: Duplicate entry '122-0' for key 'report'

  • src/XF/Db/AbstractStatement.php:228
  • Generated by: blueboy

  • May 29, 2020 at 2:34 PM
Stack trace
UPDATE xf_sv_multiple_account_report_data SET report_id = ?, active = ? WHERE report_data_id = 53
------------

#0 src/XF/Db/Mysqli/Statement.php(196): XF\Db\AbstractStatement->getException('MySQL query err...', 1062, '23000')
#1 src/XF/Db/Mysqli/Statement.php(78): XF\Db\Mysqli\Statement->getException('MySQL query err...', 1062, '23000')
#2 src/XF/Db/AbstractAdapter.php(94): XF\Db\Mysqli\Statement->execute()
#3 src/XF/Db/AbstractAdapter.php(327): XF\Db\AbstractAdapter->query('UPDATE `xf_sv_...', Array)
#4 src/XF/Mvc/Entity/Entity.php(1468): XF\Db\AbstractAdapter->update('xf_sv_multiple_...', Array, '`report_data_id...')
#5 src/XF/Mvc/Entity/Entity.php(1195): XF\Mvc\Entity\Entity->_saveToSource()
#6 src/addons/SV/SignupAbuseBlocking/Repository/MultipleAccount.php(228): XF\Mvc\Entity\Entity->save()
#7 src/addons/SV/SignupAbuseBlocking/Repository/MultipleAccount.php(60): SV\SignupAbuseBlocking\Repository\MultipleAccount->processMultipleAccountDetectionInternal(Object(SV\SignupAbuseBlocking\XF\Entity\User), Array, 'login')
#8 src/XF.php(479): SV\SignupAbuseBlocking\Repository\MultipleAccount->SV\SignupAbuseBlocking\Repository\{closure}()
#9 src/addons/SV/SignupAbuseBlocking/Repository/MultipleAccount.php(61): XF::asVisitor(Object(SV\SignupAbuseBlocking\XF\Entity\User), Object(Closure))
#10 src/addons/SV/SignupAbuseBlocking/XF/ControllerPlugin/Login.php(94): SV\SignupAbuseBlocking\Repository\MultipleAccount->processMultipleAccountDetection(Object(SV\SignupAbuseBlocking\XF\Entity\User), Array, 'login')
#11 src/XF/Pub/Controller/Login.php(117): SV\SignupAbuseBlocking\XF\ControllerPlugin\Login->completeLogin(Object(SV\SignupAbuseBlocking\XF\Entity\User), true)
#12 src/XF/Mvc/Dispatcher.php(350): XF\Pub\Controller\Login->actionLogin(Object(XF\Mvc\ParameterBag))
#13 src/XF/Mvc/Dispatcher.php(262): XF\Mvc\Dispatcher->dispatchClass('XF:Login', 'login', Object(XF\Mvc\RouteMatch), Object(SV\SignupAbuseBlocking\XF\Pub\Controller\Login), NULL)
#14 src/XF/Mvc/Dispatcher.php(113): XF\Mvc\Dispatcher->dispatchFromMatch(Object(XF\Mvc\RouteMatch), Object(SV\SignupAbuseBlocking\XF\Pub\Controller\Login), NULL)
#15 src/XF/Mvc/Dispatcher.php(55): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#16 src/XF/App.php(2190): XF\Mvc\Dispatcher->run()
#17 src/XF.php(391): XF\App->run()
#18 index.php(20): XF::runApp('XF\\Pub\\App')
#19 {main}
Request state
array(4) {
["url"] => string(12) "/login/login"
["referrer"] => string(32) "https://shooting-the-breeze.com/"
["_GET"] => array(0) {
}
["_POST"] => array(5) {
["login"] => string(7) "blueboy"
["password"] => string(8) "********"
["remember"] => string(1) "1"
["_xfRedirect"] => string(32) "https://shooting-the-breeze.com/"
["_xfToken"] => string(8) "********"
}
}
 
Hello,

I'm getting this error now and then...


  • XF\Db\DuplicateKeyException: MySQL query error [1062]: Duplicate entry '122-0' for key 'report'

  • src/XF/Db/AbstractStatement.php:228
  • Generated by: blueboy

  • May 29, 2020 at 2:34 PM
Stack trace
UPDATE xf_sv_multiple_account_report_data SET report_id = ?, active = ? WHERE report_data_id = 53
------------

#0 src/XF/Db/Mysqli/Statement.php(196): XF\Db\AbstractStatement->getException('MySQL query err...', 1062, '23000')
#1 src/XF/Db/Mysqli/Statement.php(78): XF\Db\Mysqli\Statement->getException('MySQL query err...', 1062, '23000')
#2 src/XF/Db/AbstractAdapter.php(94): XF\Db\Mysqli\Statement->execute()
#3 src/XF/Db/AbstractAdapter.php(327): XF\Db\AbstractAdapter->query('UPDATE `xf_sv_...', Array)
#4 src/XF/Mvc/Entity/Entity.php(1468): XF\Db\AbstractAdapter->update('xf_sv_multiple_...', Array, '`report_data_id...')
#5 src/XF/Mvc/Entity/Entity.php(1195): XF\Mvc\Entity\Entity->_saveToSource()
#6 src/addons/SV/SignupAbuseBlocking/Repository/MultipleAccount.php(228): XF\Mvc\Entity\Entity->save()
#7 src/addons/SV/SignupAbuseBlocking/Repository/MultipleAccount.php(60): SV\SignupAbuseBlocking\Repository\MultipleAccount->processMultipleAccountDetectionInternal(Object(SV\SignupAbuseBlocking\XF\Entity\User), Array, 'login')
#8 src/XF.php(479): SV\SignupAbuseBlocking\Repository\MultipleAccount->SV\SignupAbuseBlocking\Repository\{closure}()
#9 src/addons/SV/SignupAbuseBlocking/Repository/MultipleAccount.php(61): XF::asVisitor(Object(SV\SignupAbuseBlocking\XF\Entity\User), Object(Closure))
#10 src/addons/SV/SignupAbuseBlocking/XF/ControllerPlugin/Login.php(94): SV\SignupAbuseBlocking\Repository\MultipleAccount->processMultipleAccountDetection(Object(SV\SignupAbuseBlocking\XF\Entity\User), Array, 'login')
#11 src/XF/Pub/Controller/Login.php(117): SV\SignupAbuseBlocking\XF\ControllerPlugin\Login->completeLogin(Object(SV\SignupAbuseBlocking\XF\Entity\User), true)
#12 src/XF/Mvc/Dispatcher.php(350): XF\Pub\Controller\Login->actionLogin(Object(XF\Mvc\ParameterBag))
#13 src/XF/Mvc/Dispatcher.php(262): XF\Mvc\Dispatcher->dispatchClass('XF:Login', 'login', Object(XF\Mvc\RouteMatch), Object(SV\SignupAbuseBlocking\XF\Pub\Controller\Login), NULL)
#14 src/XF/Mvc/Dispatcher.php(113): XF\Mvc\Dispatcher->dispatchFromMatch(Object(XF\Mvc\RouteMatch), Object(SV\SignupAbuseBlocking\XF\Pub\Controller\Login), NULL)
#15 src/XF/Mvc/Dispatcher.php(55): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#16 src/XF/App.php(2190): XF\Mvc\Dispatcher->run()
#17 src/XF.php(391): XF\App->run()
#18 index.php(20): XF::runApp('XF\\Pub\\App')
#19 {main}
Request state
array(4) {
["url"] => string(12) "/login/login"
["referrer"] => string(32) "https://shooting-the-breeze.com/"
["_GET"] => array(0) {
}
["_POST"] => array(5) {
["login"] => string(7) "blueboy"
["password"] => string(8) "********"
["remember"] => string(1) "1"
["_xfRedirect"] => string(32) "https://shooting-the-breeze.com/"
["_xfToken"] => string(8) "********"
}
}
Fixed for the next version
 
@Xon, we uploaded and upgraded to 1.6.7 this morning. In the middle of the rebuild, the page crashed and the entire site is now getting a 500 error. We no longer are able to get into the site or the admin panel. We have done everything we know to do to fix the issue (disabling addons, re-uploading files, etc). I don't think this was your fault, but we need help trying to understand what parts of the DB this latest update might have affected. Can you ID the tables that would have been updated when running this update?
 
This update just touches a single phrase w.r.t to database updates. This sounds like you have crashed tables, and will need to see what error XF is throwing.
 
Trying to upgrade from version 1.6.5 to 1.6.7 and getting an error " This add-on contains the following files which have unexpected contents: src/addons/SV/Utils/InstallerHelper.php."

01.webp


Is this expected behavior and am okay to proceed or did I miss something?
 
Top Bottom