Welcome, Guest
Username Password: Remember me
Joomla!Day USA West | October 1-3, 2010

[Merged topic] How to protect my forum from spam
(1 viewing) (1) Guest

TOPIC: [Merged topic] How to protect my forum from spam

Does the "spam protection system" work in Kunena? 1 year, 4 months ago #1

There's a quaint setting in the Kunena configuration panel:
  • Security
    • Spam protection system = yes/no
The description of this parameter is:
Antispam and antibot CAPTCHA system On/Off
I assume this may be a carryover from Fireboard. I'm also assuming that, once upon a time, there may have been a plugin or extension that interfaced with Fireboard (or perhaps there were plans to enable such a feature before Fireboard development stopped) to provide the CAPTCHA processing.

As far as I can tell, the above setting has no effect in Kunena. Perhaps someone can confirm that this is intentional.

On the subject of documentation about the spam protection system setting, see #4735.
  • sozzled
  • NOW ONLINE
  • Kunena Moderator
  • I'm just a user, mate
  • Posts: 4809
Last Edit: 1 year, 4 months ago By sozzled.

Re:Does the "spam protection system" work in Kunena? 1 year, 4 months ago #2

I think this only apply if you allow users to post without logging in (under security, only registered user = no).

Have a look at this www.kunena.com/forum?func=showcaptcha .

I use this on one of my site without any problem with spamming, but that no quarantine. Someone will probably break it sometime, but until than I'm happy with it.
  • core2
  • OFFLINE
  • Senior Boarder
  • Posts: 209
Visit the Kunena documantation .

Re:Does the "spam protection system" work in Kunena? 1 year, 4 months ago #3

Thanks, core, I'll have to experiment with this sometime. Because I've never considered the possibility of giving non-registered users write access to my forums, I've never had the need for this feature. At least, it gives one good reason why people should enable this setting ... just in case.
  • sozzled
  • NOW ONLINE
  • Kunena Moderator
  • I'm just a user, mate
  • Posts: 4809

Spam control - require approving initial posts 1 year, 3 months ago #4

Re this...
www.kunena.com/forum?func=view&catid=76&id=14815

I've posted in the user voice system, but wanted to put it here also.

I have a lot of people that go through the registration process, which includes Captcha and also activating a link sent to them in there email...to post spam.

I'd really like it if in Kunena, we could set it that the first 'x' posts (to be determined by admin) had to be approved...and before that, no other posts by that person would appear. Even if I set that value to "1", it's just going to reduce the chances of annoying and (from a business perspective) unprofessional posts appearing.

Cheers,

Phil
NZMac.com - Supporting the New Zealand Mac Community
www.nzmac.com

NZiPhone.com - the home of the iPhone in New Zealand
www.nziphone.com

Re:Spam control - require approving initial posts 1 year, 3 months ago #5

This one should be quite easy to implement -- as a hack.

Add this to default/post.php line ~223 after $holdPost = $database->loadResult();

 
if ($holdPost == 0) {
$minposts = 10;
$database->setQuery("SELECT (posts<{$minposts}) AS review FROM jos_fb_users WHERE userid={$my->id}");
$database->query() or trigger_dberror('Unable to load post count from current user.');
$holdPost = $database->loadResult();
}
 


Just modify $minposts to have your preferred value.
  • Matias
  • OFFLINE
  • Kunena Developer
  • Kunena!
  • Posts: 3709
Reviews on the Joomla Extension Directory are always appreciated.
Last Edit: 1 year, 3 months ago By Matias.

Re:Spam control - require approving initial posts 1 year, 3 months ago #6

Looks interesting, but I'm not completely sure (correct me if I'm wrong) it's what I mean....as I was after some moderation in the process....otherwise if I set it too low, people could just post til they get over the limit? But I don't quite understand the hack?

Is there some way to have the users informed that their post is under review and will be until the reach a certain point? By that I mean I want some sort of message that says "Thank you for your post. Due to spam postings, and because you are new to the site, your first 5 posts will be reviewed and then published if appropriate. If they are not published, no other posts made by you will be published either."

Does your hack mean that if I set it at 1 and someone posts 5 posts (for example), none will show until I OK it?

Cheers,

Phil
NZMac.com - Supporting the New Zealand Mac Community
www.nzmac.com

NZiPhone.com - the home of the iPhone in New Zealand
www.nziphone.com

Re:Spam control - require approving initial posts 1 year, 3 months ago #7

My hack works like this:

If user has less than $minposts messages, all his messages works like moderated forum. They are hidden until moderator approves the posts.

Known problem in my first solution is that user may post 10 messages right away and after that all his posts will show up. Better solution would be to count all posts that aren't hidden:

$database->setQuery("SELECT (count(*)<10) AS review FROM jos_fb_messages WHERE userid={$my->id} AND hold=0");

This should require at least 10 approved messages before user can post without approval.

In short: all forums work like moderated forums until user has x approved messages. There should also be a message showing that the message is in the review..
  • Matias
  • OFFLINE
  • Kunena Developer
  • Kunena!
  • Posts: 3709
Reviews on the Joomla Extension Directory are always appreciated.

Re:Spam control - require approving initial posts 1 year, 3 months ago #8

You said after a certain line, which I assume meant before the next? Which was a "}"?

I'm getting format errors, so I think I have it all wrong. That whole if statement for me now reads....

 
if (!$is_Moderator)
{
$database->setQuery("SELECT review FROM #__fb_categories WHERE id={$catid}");
$database->query() or trigger_dberror('Unable to load review flag from categories.');
$holdPost = $database->loadResult();
 
if ($holdPost == 0) {
$minposts = 1;
$database->setQuery("SELECT (count(*)<2) AS review FROM jos_fb_messages WHERE userid={$my->id} AND hold=0");
$database->query() or trigger_dberror('Unable to load post count from current user.');
$holdPost = $database->loadResult();
}
}
 


What have I done wrong?

Cheers, Phil
NZMac.com - Supporting the New Zealand Mac Community
www.nzmac.com

NZiPhone.com - the home of the iPhone in New Zealand
www.nziphone.com

Re:Spam control - require approving initial posts 1 year, 3 months ago #9

I haven't tested that code, so it may have bugs.. Your code looks ok to me.

Can you give me the PHP error you are getting?
  • Matias
  • OFFLINE
  • Kunena Developer
  • Kunena!
  • Posts: 3709
Reviews on the Joomla Extension Directory are always appreciated.

Re:Spam control - require approving initial posts 1 year, 3 months ago #10

New tested version which holds all posts made by anonymous users:

if ($holdPost == 0) {
$minposts = 10;
if ($my->id) {
$database->setQuery("SELECT (posts<{$minposts}) AS review FROM jos_fb_users WHERE userid={$my->id}");
$database->query() or trigger_dberror('Unable to load post count from current user.');
$holdPost = $database->loadResult();
} else $holdPost = 1;
}
  • Matias
  • OFFLINE
  • Kunena Developer
  • Kunena!
  • Posts: 3709
Reviews on the Joomla Extension Directory are always appreciated.
Last Edit: 1 year, 3 months ago By Matias.
Time to create page: 0.47 seconds