Keeping out the spam

Monday, 19 Jan 2004

I was thinking about preventing spam on websites which allow posting to by third parties, such as message boards, commentable weblogs, and so on. The solution that eventually presented itself seems, after some consideration, unbreakable, and shouldn’t inconvenience legitimate users much:

As far as I can tell, there is no way around this scheme, and it ensures that no one can spam without first going to the effort of writing at least one sensible post. Spammers are not generally going to do so.

Even if the site presented such a juicy target that they did, this scheme ensures that all their spam is associated with a single name, since they must use an approved account for their posts to show up. Spam can therefore easily be removed en bulk with surgical precision.

After discussion with a friend, a few finer points have emerged, and I also feel I need to clarify some bits about this idea.

The point is that everyone gets an account and can always post using that account. Their messages won’t show up as long as the account is marked as unapproved, however. As soon as an account gets approved, all the previous and any future messages posted using that account show up immediately. This way, new users can butt into a discussion as quickly as possible while spammers remain locked out.

New ideas emerged from my chat that concern the handling of messages from unapproved accounts.

First of all, it is vital in order to preserve a post’s context that it show up at the point in a thread at which it was posted, once its account is approved. If it were to get appended to the bottom of a busy thread, it would probably be completely out of continuity.

However, that means there needs to be some indication ahead of time that a post may show up at the point in question, so that users who can already post publicly visible messages can take this into account (no pun intended). F.ex, if Joe User were replying to what appears to be the last post on a thread he might skip quoting it and might address its author directly with “you”. If a new user had posted after that last post but before Joe’s, his post getting inserted before Joe’s would knock Joe’s reply off context. Therefor, posts from unapproved accounts need to show up as a placeholder.

Yet this poses another problem in busy threads: at the time a placeholder gets replaced, discussion might have moved on quite a ways, and no one would even notice the “new old” post anymore. Hence, a notification needs to be appended to the bottom of the thread when accounts approvals result in the insertion of text in placeholders. This autogenerated notification should contain a link to the newly inserted post; ideally, users would have the option to have the full text of the retroactively added message included in the notification.