Hi devs,
We’ve suffered some spamming attacks on
xwiki.org recently and we’ve put
xwiki.org under
cloudflare. This should prevent some attacks but it’s not enough and spam is still going
through.
I’d like to propose creating a new xwiki-platform-spam module with an API module and a
simple implementation using keyword blacklisting.
xwiki-platform-spam
|_ xwiki-platform-spam-api
|_ xwiki-platform-spam-simple
We could imagine adding an akismet implementation later on: xwiki-platform-spam-akismet
For the simple implementation, I’d like to be able to configure the keywords in xobjects
to make it simple to update and have the community helping.
The API would be simple:
@Role
public interface SpamChecker
{
/**
* Checks if the passed content is considered spam or not.
*
* @param content the content to check
* @param parameters a map of parameters that depends on the implementation used. For
example this can include the
* IP address of the submitter of the content, its email address, the date of
submission, etc
* @return true if the content is considered spam or false otherwise
*/
boolean isSpam(Reader content, Map<String, Object> parameters);
}
Then the idea would be to have an EventListener for page save and comment save and go
through this API.
WDYT?
Thanks
-Vincent