blob: 926b79305ec4b39b05075916ce4f60ea859182b9 [file] [log] [blame]
The SpamFilter is a JSPWiki filter that can be used to block questionable edits.
!Parameters
;__wordlist__: The name of the WikiPage on which the word list resides. Default is "SpamFilterWordList".
;__errorpage__: The name of the page to which the user is redirected, if the edit contains a matched word. On that page, the variable [[{$msg}] is available, telling the reason.
;__pagechangesinminute__: How many page changes are allowed per minute before the IP address is put on a temporary ban list. Default is 5 changes/minute.
;__bantime__: The length of the ban time. Default is "60" for 60 minutes.
!The word list
The SpamFilter looks at the [WikiVariable] called 'spamwords' on the ''wordlist'' page. This must contain a space-separated list of words not allowed in a page. In fact, each word is a full Perl5 regular expression, so you can do pretty complex matches as well.
Of course, it is a good idea to allow only trusted users to edit the ''wordlist'' page. Otherwise a spammer can remove the list...
!Example
Put the following in your filters.xml file (See [PageFilter Configuration] for more information):
{{{
<filter>
<class>com.ecyrd.jspwiki.filters.SpamFilter</class>
</filter>
}}}
to start the filter. Create a page called "SpamFilterWordList" and put the following on it:
{{{
[{SET spamwords='viagra money'}]
}}}
to prevent anyone from saving a page that contains either the word "viagra" or "money". In a bit more complicated example:
{{{
[{SET spamwords='[vV][iI][aA][gG][rR][aA]'}]
}}}
would block the words "viagra", "Viagra", "viAGra" and so on.