Simple techniques for preventing spamming of a web

2019-08-03 05:01发布

问题:

I have a simple, custom rolled chat here: ( http://ninjawars.net - essentially: ajax chat, php backend, javascript listing of chat messages, logged-in user input only ) that suffers from being able to be spammed. What are some simple systems to prevent spamming of a chat?

One thing (lowest level of protection) that I have already implemented:

  • Ignore consecutive duplicate messages from the same user.

Other ideas that I have:

  • Add consecutive messages from the same user together, instead of creating a separate message line. (relatively simple to implement, decreases the effect of spam but doesn't prevent it)
  • Prevent continued messages after a certain number of consecutive messages from one user, for new users. (relatively simple to implement)
  • Chat moderation by trusted users (complex to implement).

Are there any simple systems/algorithms to prevent chat message spamming that I should know about?

回答1:

Put an increasing delay on how fast a user can reply. So after each message post store next_reply_time as a timestamp of NOW + 1 second. If they reply before the time has reached, ignore it and give a "Reply too fast" warning and set the next_reply_time to NOW + 2 seconds, and so on. This way if they stack up messages too fast, you'll ignore them for longer periods of time. This delay can of course be based on reputation.