Avoiding Spam

Wikispam is getting more and more annoying. Wiki pages get high ratings in search engines because of the strong linking between the pages (and each other via InterWiki links). This makes them a valuable target to increase the ranking of other pages.

But you can use a strong wiki community and also some technical means to avoid or remove spam on your wiki.


What is a TextCHA?

It is a pure text alternative to CAPTCHAs. MoinMoin uses it to prevent wiki spamming and it has proven to be very effective.


  • for page save, ask a random question
  • match the given answer against a regular expression
  • q and a can be configured in the wiki config
  • multi language support: a user gets a textcha in his language or in language_default or in English (depending on availability of questions/answers for the language)

Tips for answering:

  • you need to answer the textcha for e.g.:
    • page save
    • attachment upload
    • user profile creation
  • you do not need to answer the textcha for e.g.:
    • page preview (if you do, it will remember what you entered, though)
    • user profile changes
  • it is usually a simple/short answer
  • it compares case-insensitive
  • sometimes you can find the right answer by reading some important pages of the wiki

TextCha Configuration

Tips for configuration:

  • have 1 word / 1 number answers
  • ask questions that normal users of your site are likely to be able to answer
  • do not ask too hard questions
  • do not ask "computable" questions, like "1+1" or "2*3"
  • do not ask too common questions
  • do not share your questions with other sites / copy questions from other sites (or spammers might try to adapt to this)
  • you should at least give textchas for 'en' (or for your language_default, if that is not 'en') as this will be used as fallback if MoinMoin does not find a textcha in the user's language

In your wiki config, do something like this:

    textchas_disabled_group = u"TrustedEditorGroup" # members of this don't get textchas
    textchas = {
        'en': { # silly english example textchas (do not use them!)
            u"Enter the first 9 digits of Pi.": ur"3\.14159265",
            u"What is the opposite of 'day'?": ur"(night|nite)",
            # ...
        'de': { # some german textchas
            u"Gib die ersten 9 Stellen von Pi ein.": ur"3\.14159265",
            u"Was ist das Gegenteil von 'Tag'?": ur"nacht",
            # ...
        # you can add more languages if you like

Note that TrustedEditorGroup from above example can have groups as members.

BadContent / LocalBadContent

You can ban certain content within contributions by listing regular expressions on the your 'BadContent' page.

If a user tries to save a page and its content matches any of these regular expressions, then saving that page will be denied (until the offending content is removed from the editor).

You can also enable an automatic update of BadContent via your wikiconfig. This is enabled by this line:

    from MoinMoin.security.antispam import SecurityPolicy

see HelpOnConfiguration/SecurityPolicy

Remove Spam Action

If you are a SuperUser, you can use this action to mass-revert changes of some spammer (or some other bad guy).

  1. Select "Remove Spam" from the available actions.
  2. Select the user (usually part of the IP)
  3. Select "Revert All"
  4. You will see how moin tries to revert his edits. This does not work in every case, so you may have to clean up some of his edits manually.