PHPackages                             silverstripe/mathspamprotection - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Validation &amp; Sanitization](/categories/validation)
4. /
5. silverstripe/mathspamprotection

ActiveSilverstripe-vendormodule[Validation &amp; Sanitization](/categories/validation)

silverstripe/mathspamprotection
===============================

This module provides a simple math protection mechanism for prevent spam from your forms.Includes an EditableMathSpamField to integrate with the UserForms module.

3.0.0(4y ago)1917.6k19[4 issues](https://github.com/silverstripe/silverstripe-mathspamprotection/issues)BSD-3-ClausePHP

Since Feb 3Pushed 4y ago15 watchersCompare

[ Source](https://github.com/silverstripe/silverstripe-mathspamprotection)[ Packagist](https://packagist.org/packages/silverstripe/mathspamprotection)[ RSS](/packages/silverstripe-mathspamprotection/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (1)Versions (4)Used By (0)

Math Spam Protection
====================

[](#math-spam-protection)

This module provides a simple math protection mechanism for prevent spam on your forms. It will ask the user to complete an equation such as "three plus seven".

Note that while the challenge is written in natural language to make it a bit harder to parse for bots, its by no means a comprehensive solution to avoiding spam.

Includes an EditableMathSpamField to integrate with the UserForms module.

Requirements
------------

[](#requirements)

- SilverStripe 4
- Spam Protection

Install Spam Protection Module
------------------------------

[](#install-spam-protection-module)

The Spam Protection Module () provides the basic interface for managing the spam protection so first you need to install that module.

If you're using composer..

```
composer require "silverstripe/spamprotection:dev-master"
composer require "silverstripe/mathspamprotection:dev-master"

```

Set the default spam protector in *mysite/\_config/spamprotection.yml*

```
---
name: myspamprotection
---
SilverStripe\SpamProtection\Extension\FormSpamProtectionExtension:
  default_spam_protector: SilverStripe\MathSpamProtection\MathSpamProtector

```

###  Health Score

38

—

LowBetter than 85% of packages

Maintenance16

Infrequent updates — may be unmaintained

Popularity35

Limited adoption so far

Community28

Small or concentrated contributor base

Maturity65

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~1036 days

Total

3

Last Release

1685d ago

Major Versions

2.x-dev → 3.0.02021-10-06

### Community

Maintainers

![](https://www.gravatar.com/avatar/b0cba8b534e20e6ab4fff555a97b237a18436ebca1446fc0b29c8a8b504038b9?d=identicon)[GuySartorelli](/maintainers/GuySartorelli)

![](https://avatars.githubusercontent.com/u/101629?v=4)[Will Rossiter](/maintainers/wilr)[@wilr](https://github.com/wilr)

---

Top Contributors

[![wilr](https://avatars.githubusercontent.com/u/101629?v=4)](https://github.com/wilr "wilr (26 commits)")[![gordonbanderson](https://avatars.githubusercontent.com/u/7060?v=4)](https://github.com/gordonbanderson "gordonbanderson (15 commits)")[![dhensby](https://avatars.githubusercontent.com/u/563596?v=4)](https://github.com/dhensby "dhensby (11 commits)")[![Martimiz](https://avatars.githubusercontent.com/u/614243?v=4)](https://github.com/Martimiz "Martimiz (3 commits)")[![robbieaverill](https://avatars.githubusercontent.com/u/5170590?v=4)](https://github.com/robbieaverill "robbieaverill (3 commits)")[![Taitava](https://avatars.githubusercontent.com/u/13002142?v=4)](https://github.com/Taitava "Taitava (3 commits)")[![Juanitou](https://avatars.githubusercontent.com/u/807463?v=4)](https://github.com/Juanitou "Juanitou (3 commits)")[![marijnkampf](https://avatars.githubusercontent.com/u/699259?v=4)](https://github.com/marijnkampf "marijnkampf (2 commits)")[![chillu](https://avatars.githubusercontent.com/u/111025?v=4)](https://github.com/chillu "chillu (2 commits)")[![vikas-srivastava](https://avatars.githubusercontent.com/u/1092931?v=4)](https://github.com/vikas-srivastava "vikas-srivastava (2 commits)")[![wolfv](https://avatars.githubusercontent.com/u/885054?v=4)](https://github.com/wolfv "wolfv (1 commits)")[![baukezwaan](https://avatars.githubusercontent.com/u/795238?v=4)](https://github.com/baukezwaan "baukezwaan (1 commits)")[![bilekt3](https://avatars.githubusercontent.com/u/381740?v=4)](https://github.com/bilekt3 "bilekt3 (1 commits)")[![JarkkoLinnanvirta](https://avatars.githubusercontent.com/u/5046663?v=4)](https://github.com/JarkkoLinnanvirta "JarkkoLinnanvirta (1 commits)")[![jelicanin](https://avatars.githubusercontent.com/u/692844?v=4)](https://github.com/jelicanin "jelicanin (1 commits)")[![simonwelsh](https://avatars.githubusercontent.com/u/125915?v=4)](https://github.com/simonwelsh "simonwelsh (1 commits)")[![Tech-Maou](https://avatars.githubusercontent.com/u/44967339?v=4)](https://github.com/Tech-Maou "Tech-Maou (1 commits)")[![tractorcow](https://avatars.githubusercontent.com/u/936064?v=4)](https://github.com/tractorcow "tractorcow (1 commits)")[![webs86](https://avatars.githubusercontent.com/u/487004?v=4)](https://github.com/webs86 "webs86 (1 commits)")[![anselmdk](https://avatars.githubusercontent.com/u/1316533?v=4)](https://github.com/anselmdk "anselmdk (1 commits)")

---

Tags

silverstripespamprotectionmathspamprotection

### Embed Badge

![Health badge](/badges/silverstripe-mathspamprotection/health.svg)

```
[![Health](https://phpackages.com/badges/silverstripe-mathspamprotection/health.svg)](https://phpackages.com/packages/silverstripe-mathspamprotection)
```

###  Alternatives

[undefinedoffset/silverstripe-nocaptcha

A spam protector and form field using Google's reCAPTCHA v2 or optionally a foundation v3 implementation

33471.6k16](/packages/undefinedoffset-silverstripe-nocaptcha)[sheadawson/silverstripe-zenvalidator

Faster, easier client and server-side form validation for SilverStripe

5778.4k2](/packages/sheadawson-silverstripe-zenvalidator)[jonom/silverstripe-text-target-length

Set character length recommendations on SilverStripe text form fields

32132.4k9](/packages/jonom-silverstripe-text-target-length)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
