Extension:StopForumSpam

The StopForumSpam extension allows wikis to utilize and contribute data to stopforumspam.com.

It features automatic IP blocking and an easy interface for administrators to submit data.

Use of the IP blacklist requires that you use some kind of 1>Special:MyLanguage/Manual:Performance tuning#Object caching|object caching.

It won't work if you have  set to CACHE_NONE.

If neither APC or Memcached is an option, the simplest approach is to fallback to storing the object cache in your MySQL database.

The following preset (in LocalSettings.php) will do that:

Configuration

 * - location of an unzipped IP address blacklist
 * - enables a mode where users are not blocked from non-read actions after tripping the blacklist

User rights

 * - allows users to bypass blacklisted IP blocks

Logging
To log reports about who StopForumSpam is exempting and blocking, you can enable the "StopForumSpam" channel in your 1>Special:MyLanguage/Manual:Structured logging#Configuring your wiki for structured logging|structured logging configuration.

All reports for the extension are logged at a level of INFO.

If you do not have structured logging configured, you can log to a file by configuring  in your LocalSettings.php, like so:

This will write the log to a file located in  .

MediaWiki will need access to write to this log file and the file should not accessible via the web as it will contain private details of your users (such as usernames, page names, and IP addresses).

The simple logging using <tvar|1> </> will omit details compared to using a structured logging solution such as <tvar|2></>.

AbuseFilter integration
When using the <tvar|1></>, a variable named "<tvar|2>sfs_blocked</>" is added.

The value is false if the user is not a spammer, and true if they are a spammer.

IP blocking
You can [<tvar|url>https://www.stopforumspam.com/downloads</> download] IP blacklists, and import them using the <tvar|2> </> script.

<tvar|1>StopForumSpam</> has several lists; we recommend using the "<tvar|2>listed_ip_30_all</>" list.

Once you choose the list you want, download and extract it to somewhere on your server, then point <tvar|1> </> in the <tvar|2>LocalSettings.php</> file at it.

We recommend setting up a nightly cron job to download and extract new versions of the list and subsequently running the <tvar|1>updateBlacklist</> maintenance script.

If that IP tries to edit, or a user tries to edit through that IP address, they will be prevented from editing.

To exempt a user from being blocked, give them the <tvar|1> </> user right.