Joined: 11 May 2005
|Posted: Tue Jul 07, 2009 11:20 am Post subject: Dealing with spambots
|Recently I had an incident whereby the owner of another mud logged on a dozen bots, and continually spammed all three public channels with random junk. He did this in the middle of the night, when there were no admin online to deal with him.
I know that some muds block newbies from using public channels, but that seems like a pretty bad solution to me - you're effectively blocking newbies from social interaction, and cutting them off from the people best able to help them.
I've considered giving certain trusted players limited administrative commands for dealing with such situations, and may still do so, but I really wanted some sort of automated way of dealing with spambots. So here's the solution I went for:
Every time you send a message to a public channel, your spam counter (and that of everyone else connected from your IP address) increases by 2. This spam counter also goes down by 1 every second. If the spam counter reaches or exceeds 20, then every character currently connected from your IP address is silenced, and no new characters can be created from that IP address.
Note that it isn't obvious if you've been silenced, because (from your perspective) it still looks as though you're talking - it's just that nobody else sees the messages. This applies to all channels, including 'say' and 'emote'.
Obviously people can get around this using proxy servers, but it makes it much more of a hassle for them. There could also be a potential issue if a lot of players happen to play from the same IP address, but I won't worry about that unless it actually becomes a problem. I guess I could add special exceptions for certain characters in that case.
There's also the issue that the spamblocker can easily be avoided if you simply space out your spam - leave a couple of seconds between each message, and the counter will never reach 20. This could be reduced by not lowering the counter on the same second that a message is sent, or perhaps by adding a secondary long-term counter, or maybe something else...but such solutions also increase the chance of a regular player being blocked. I don't want to punish verbal diarrhea, just deal with spambots.
I'm sure many other muds must encounter this sort of thing from time to time...how do you deal with it?