PHPackages                             eliepse/argile-honeypot - 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. [Security](/categories/security)
4. /
5. eliepse/argile-honeypot

AbandonedArchivedLibrary[Security](/categories/security)

eliepse/argile-honeypot
=======================

Honeypot protecting forms from robot spam, made for the Argile Framework

2.0.1(5y ago)064MITPHPPHP ^8.0

Since Sep 19Pushed 5y ago1 watchersCompare

[ Source](https://github.com/Eliepse/argile-honeypot)[ Packagist](https://packagist.org/packages/eliepse/argile-honeypot)[ RSS](/packages/eliepse-argile-honeypot/feed)WikiDiscussions master Synced 2d ago

READMEChangelogDependencies (6)Versions (6)Used By (0)

Argile Honeypot
===============

[](#argile-honeypot)

---

[![Packagist Version](https://camo.githubusercontent.com/cf9a7f2e7d79ce5a492592c03ae7b71a532db0b0a4bd1e5ff5b7a090b4691101/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f656c69657073652f617267696c652d686f6e6579706f74)](https://camo.githubusercontent.com/cf9a7f2e7d79ce5a492592c03ae7b71a532db0b0a4bd1e5ff5b7a090b4691101/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f656c69657073652f617267696c652d686f6e6579706f74)[![Packagist PHP Version Support](https://camo.githubusercontent.com/6a91cd162977be7dcd6a00ec5596923aec1296ad30973b494f4c85f8e5adbe4f/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f656c69657073652f617267696c652d686f6e6579706f74)](https://camo.githubusercontent.com/6a91cd162977be7dcd6a00ec5596923aec1296ad30973b494f4c85f8e5adbe4f/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f656c69657073652f617267696c652d686f6e6579706f74)[![Packagist License](https://camo.githubusercontent.com/753f2bd42b72f369972d29d7d87acca8da41198fe4a24219af629b0e3e596609/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f656c69657073652f617267696c652d686f6e6579706f74)](https://camo.githubusercontent.com/753f2bd42b72f369972d29d7d87acca8da41198fe4a24219af629b0e3e596609/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f656c69657073652f617267696c652d686f6e6579706f74)[![Framework: Argile](https://camo.githubusercontent.com/e61bbdc76f4383576ac1ae9d5cf96fd5ae804084863b332668c579b4a13804ab/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6672616d776f726b2d417267696c652d6c6967687467726579)](https://camo.githubusercontent.com/e61bbdc76f4383576ac1ae9d5cf96fd5ae804084863b332668c579b4a13804ab/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6672616d776f726b2d417267696c652d6c6967687467726579)

*Argile Honeypot* is a simple protection against robot spammers for your public forms. **It can be used for various project** but has been made to work with the simple *Argile* framework.

How does it work?
-----------------

[](#how-does-it-work)

The honeypot consist on hashing input names in the html response (handled by `HoneypotResponseMiddleware`), and adding fake inputs (honeypots) with the original names. Robot spammers will likely fill all fields, espacially the ones that will looks like real fields.

The middleware `HoneypotRequestMiddleware` check the POST request from the client and check if fake fields has been filled. If so, the request is blocked and an 403 response is sent. It also check if the form has been filled quicker than a certain delay (default to 5 seconds).

How to use it?
--------------

[](#how-to-use-it)

First install the package by adding it to your composer.json or requiring it through the command line.

```
composer require eliepse/argile-honeypot
```

You also have to add the css class "onipat" to hide the fake inputs. A css file is available at `/resources/css/honeypot.css`

```
.onipat {
    opacity: 0;
    position: absolute;
    top: 0;
    left: 0;
    height: 0;
    width: 0;
    z-index: -1;
}
```

### 1. Preparing the form

[](#1-preparing-the-form)

Then, add the `HoneypotResponseMiddleware` to the route containing the form to protect. As an example:

```
$router->get('/', WelcomeController::class)
	->addMiddleware(new HoneypotResponseMiddleware());
```

In order for the middlware to work, you have to indicate some common fields copy as honeypot. Simply add the prefix `honeypot:` to the name of the input. Example:

```

```

The middleware will automatically change the name of the real field with a hash, and generate a fake field.

```

```

### 2. Handle the POST request

[](#2-handle-the-post-request)

Now, we have to handle the request to block spams and change the inputs names to the original ones (so the rest of the code doesn't have to handle hashed names). Simply add the request middleware to your route as below.

```
$router->post("/contact", [SendContactMailController::class, 'send'])
	->addMiddleware(new HoneypotRequestMiddleware());
```

### License

[](#license)

This package is under the [MIT license](./LICENSE).

It is maintained by [Élie Meignan](https://github.com/Eliepse).

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

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 ~31 days

Total

5

Last Release

1935d ago

Major Versions

1.1.0 → 2.0.02021-01-23

PHP version history (2 changes)1.0.0PHP ^7.4

2.0.0PHP ^8.0

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/3075627?v=4)[Elie Meignan](/maintainers/Eliepse)[@Eliepse](https://github.com/Eliepse)

---

Top Contributors

[![Eliepse](https://avatars.githubusercontent.com/u/3075627?v=4)](https://github.com/Eliepse "Eliepse (10 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/eliepse-argile-honeypot/health.svg)

```
[![Health](https://phpackages.com/badges/eliepse-argile-honeypot/health.svg)](https://phpackages.com/packages/eliepse-argile-honeypot)
```

###  Alternatives

[cakephp/cakephp

The CakePHP framework

8.8k18.5M1.6k](/packages/cakephp-cakephp)[neos/flow

Flow Application Framework

862.0M451](/packages/neos-flow)[selective/samesite-cookie

Secure your site with SameSite cookies

10144.0k](/packages/selective-samesite-cookie)[neos/flow-development-collection

Flow packages in a joined repository for pull requests.

144179.3k3](/packages/neos-flow-development-collection)[windwalker/framework

The next generation PHP framework.

25639.1k1](/packages/windwalker-framework)

PHPackages © 2026

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