Signup abuse detection and blocking

Signup abuse detection and blocking [Paid] 1.15.6

No permission to buy ($45.00)
@Xon, hoping you can help out here.

Typically, when we have a username match the log says SFS username match for Stop Forum Spam. In this case, it didn't, but it did say there was a match. Was this user rejected for their username and if so, what was the name matched from?

View attachment 208366
After looking into this, please check that "Stop Forum Spam" is actually configured :( As this add-on just enhances the SFS integration and doesn't implement that
 
Just logged into your site and I have a download if "multiple account to thread" available, is that related to this addon?
 
Just logged into your site and I have a download if "multiple account to thread" available, is that related to this addon?
Yes, that add-on lets you push multiple-account reports to threads instead of reports. It adds an extra query per thread view; so it isn't included into the main add-on.
 
Not currently, I do find that information quite useful as it indicates someone is trying to create multiple accounts.
 
No, I meant the manual rejection by staff at approval queue. Because the account has already been reviewed by staff and rejected at approval, and then we have to deal with the same user again in the report center. We only need reports on users that are multiple but accidently missed and approved by staff.

*We're using manual registration instead of email one.
 
Last edited:
Feature suggestion (or user needing assistance) @Xon

I find it useful to penalize registrations that are NOT in a small subset of countries (or potentially NOT in other criteria). I don't believe you have a NOT operator in country settings and I don't want to list 190+ country codes. If you do let me know what that looks like.

Thanks.
 
That directly supported, but I do think it is a good idea. Probably would want to convert from that single text entry field to something more structured by then.

You can kinda emulate it by using a +3|* rule, and then have the white-list countries do -3|<country code>
 
That directly supported, but I do think it is a good idea. Probably would want to convert from that single text entry field to something more structured by then.

You can kinda emulate it by using a +3|* rule, and then have the white-list countries do -3|<country code>

Good tip. Thanks. For sure there maybe value in other usecases that I haven't thought about.
 
Just here to report a bug, no ill side effects observed from it, but it did trigger an error in the log.

Code:
XF\Db\Exception: MySQL query error [1366]: Incorrect string value: '\xF0\x9F\xA4\x94' for column 'content_title' at row 1 src/XF/Db/AbstractStatement.php:217
Generated by: USER Oct 20, 2019 at 4:45 AM

INSERT  INTO `xf_sv_user_log` (`content_type`, `content_id`, `user_id`, `ip_address`, `content_user_id`, `content_username`, `content_title`, `content_url`, `discussion_content_type`, `discussion_content_id`, `action`, `action_params`, `user_log_id`, `log_date`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
------------

#0 src/XF/Db/Mysqli/Statement.php(196): XF\Db\AbstractStatement->getException('MySQL query err...', 1366, 'HY000')
#1 src/XF/Db/Mysqli/Statement.php(77): XF\Db\Mysqli\Statement->getException('MySQL query err...', 1366, 'HY000')
#2 src/XF/Db/AbstractAdapter.php(94): XF\Db\Mysqli\Statement->execute()
#3 src/XF/Db/AbstractAdapter.php(218): XF\Db\AbstractAdapter->query('INSERT  INTO `x...', Array)
#4 src/XF/Mvc/Entity/Entity.php(1452): XF\Db\AbstractAdapter->insert('xf_sv_user_log', Array, false)
#5 src/XF/Mvc/Entity/Entity.php(1184): XF\Mvc\Entity\Entity->_saveToSource()
#6 src/addons/SV/UserEssentials/UserLog/AbstractHandler.php(130): XF\Mvc\Entity\Entity->save()
#7 src/addons/SV/UserEssentials/UserLog/AbstractHandler.php(75): SV\UserEssentials\UserLog\AbstractHandler->log(Object(SV\UserEssentials\XF\Entity\Post), 'edit', Array, Object(SV\SignupAbuseBlocking\XF\Entity\User))
#8 src/addons/SV/UserEssentials/UserLog/Logger.php(90): SV\UserEssentials\UserLog\AbstractHandler->logChange(Object(SV\UserEssentials\XF\Entity\Post), 'message', '[QUOTE="ShaunMo...', '[QUOTE="ShaunMo...', Object(SV\SignupAbuseBlocking\XF\Entity\User))
#9 src/addons/SV/UserEssentials/XF/Logger.php(90): SV\UserEssentials\UserLog\Logger->logChanges('post', Object(SV\UserEssentials\XF\Entity\Post), true)
#10 src/addons/SV/UserEssentials/XF/Entity/Post.php(138): SV\UserEssentials\XF\Logger->logUserChanges('post', Object(SV\UserEssentials\XF\Entity\Post))
#11 src/XF/Mvc/Entity/Entity.php(1208): SV\UserEssentials\XF\Entity\Post->_postSave()
#12 src/XF/Service/Post/Editor.php(187): XF\Mvc\Entity\Entity->save(true, false)
#13 src/XF/Service/ValidateAndSavableTrait.php(40): XF\Service\Post\Editor->_save()
#14 src/XF/Pub/Controller/Post.php(135): XF\Service\Post\Editor->save()
#15 src/addons/EWR/Porta/Pub/Controller/Post.php(39): XF\Pub\Controller\Post->actionEdit(Object(XF\Mvc\ParameterBag))
#16 src/XF/Mvc/Dispatcher.php(321): EWR\Porta\Pub\Controller\Post->actionEdit(Object(XF\Mvc\ParameterBag))
#17 src/XF/Mvc/Dispatcher.php(244): XF\Mvc\Dispatcher->dispatchClass('XF:Post', 'Edit', Object(XF\Mvc\RouteMatch), Object(SV\UserEssentials\XF\Pub\Controller\Post), NULL)
#18 src/XF/Mvc/Dispatcher.php(100): XF\Mvc\Dispatcher->dispatchFromMatch(Object(XF\Mvc\RouteMatch), Object(SV\UserEssentials\XF\Pub\Controller\Post), NULL)
#19 src/XF/Mvc/Dispatcher.php(50): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#20 src/XF/App.php(2178): XF\Mvc\Dispatcher->run()
#21 src/XF.php(390): XF\App->run()
#22 index.php(20): XF::runApp('XF\\Pub\\App')
#23 {main}

array(4) {
  ["url"] => string(29) "/index.php?posts/1829172/edit"
  ["referrer"] => string(103) "https://SITEURL/index.php?threads/THREADTITLE-%F0%9F%A4%94.83565/"
  ["_GET"] => array(1) {
    ["posts/1829172/edit"] => string(0) ""
  }
  ["_POST"] => array(8) {
    ["message_html"] => string(616) "<p>[QUOTE="USER, post: 1829031, member: 62253"]</p><p>POST CONTENTS WENT HERE</p><p>[/QUOTE]</p><p><br></p><p>REPLY CONTENTS WENT HERE</p><p><br></p><p>ANOTHER POST CONTENT HERE</p>"
    ["_xfInlineEdit"] => string(1) "1"
    ["attachment_hash"] => string(32) "7457fdcaf21d8677d841ac05c6b1ff6a"
    ["attachment_hash_combined"] => string(87) "{"type":"post","context":{"post_id":1829172},"hash":"7457fdcaf21d8677d841ac05c6b1ff6a"}"
    ["_xfToken"] => string(8) "********"
    ["_xfRequestUri"] => string(76) "/index.php?threads/THREADTITLE-%F0%9F%A4%94.83565/"
    ["_xfWithData"] => string(1) "1"
    ["_xfResponseType"] => string(4) "json"
  }
}
 
That directly supported, but I do think it is a good idea. Probably would want to convert from that single text entry field to something more structured by then.

You can kinda emulate it by using a +3|* rule, and then have the white-list countries do -3|<country code>

So that doesn't seem to work as intended. Here's what I'm seeing in the logs:

  • -3. Country matched: US
  • +1. AS matched: ASN21928, AS19271 Peak 10
  • Hostname detected: xx.xx.xx.xx
  • +2. Javascript disabled
  • Total score: 0
I have in the options:
+3|*
-3|US

The * rule is never taken into consideration.
 
Last edited:
Will need to look into that, I thought it worked like that but I may have revised things and broke it
 
Top Bottom