PHPackages                             fabianwennink/iconcaptcha - 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. fabianwennink/iconcaptcha

ActiveLibrary[Security](/categories/security)

fabianwennink/iconcaptcha
=========================

IconCaptcha is a self-hosted, customizable, easy-to-implement and user-friendly captcha.

4.0.6(11mo ago)17740.5k↑48%32[3 issues](https://github.com/fabianwennink/IconCaptcha-PHP/issues)1MITPHPPHP &gt;=7.4

Since Nov 5Pushed 11mo ago5 watchersCompare

[ Source](https://github.com/fabianwennink/IconCaptcha-PHP)[ Packagist](https://packagist.org/packages/fabianwennink/iconcaptcha)[ Docs](https://github.com/fabianwennink/IconCaptcha-PHP)[ Fund](https://www.buymeacoffee.com/fabianwennink)[ RSS](/packages/fabianwennink-iconcaptcha/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)DependenciesVersions (10)Used By (1)

    ![IconCaptcha Logo](https://camo.githubusercontent.com/d171c77e470d287deab572c1f2398eeba10d63ca4a210b2b8314ef6d63913718/68747470733a2f2f692e696d6775722e636f6d2f524d55414c537a2e706e67)

 **A self-hosted, customizable, easy-to-implement and user-friendly captcha.**

 [![Version](https://camo.githubusercontent.com/1888df7ae68e9f8d5fb39b3eb88cfff186166d5a51227d4567e9511abefb9c99/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f76657273696f6e2d342e302e362d6f72616e67652e7376673f7374796c653d666c61742d737175617265)](https://github.com/fabianwennink/IconCaptcha-PHP/releases) [![Latest Version on Packagist](https://camo.githubusercontent.com/92f1b45c025b6a2a5b6d2fa62add48d58135aec471f55ed5f9416fbd927502b8/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f66616269616e77656e6e696e6b2f69636f6e636170746368612e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/fabianwennink/iconcaptcha) [![License](https://camo.githubusercontent.com/942e017bf0672002dd32a857c95d66f28c5900ab541838c6c664442516309c8a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e7376673f7374796c653d666c61742d737175617265)](https://fabianwennink.nl/projects/IconCaptcha/license) [![Buy me a coffee](https://camo.githubusercontent.com/f6f5978557c4d15ad7d7debe05afeb5608390995790a8a50da4541a1b6454151/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f737570706f72742d4275795f4d655f415f436f666665652d6c69676874626c75652e7376673f7374796c653d666c61742d737175617265)](https://www.buymeacoffee.com/fabianwennink)

 [![Sonar Quality](https://camo.githubusercontent.com/526aa7d1bbf7d3b99922fbd8d359684e833ab8a3145c2caf03af113cac43ba51/68747470733a2f2f696d672e736869656c64732e696f2f736f6e61722f616c6572745f7374617475732f66616269616e77656e6e696e6b5f49636f6e436170746368612d5048503f7365727665723d6874747073253341253246253246736f6e6172636c6f75642e696f267374796c653d666c61742d737175617265266c6f676f3d736f6e6172636c6f7564)](https://sonarcloud.io/dashboard?id=fabianwennink_IconCaptcha-PHP) [![Sonar Security](https://camo.githubusercontent.com/f5f8a0c0ea8256d2a165b2be9e699395fc20b0ef6db95a9fc1eb330082052607/68747470733a2f2f696d672e736869656c64732e696f2f736f6e61722f73656375726974795f726174696e672f66616269616e77656e6e696e6b5f49636f6e436170746368612d5048503f7365727665723d6874747073253341253246253246736f6e6172636c6f75642e696f267374796c653d666c61742d737175617265266c6f676f3d736f6e6172636c6f756426636f6c6f723d253233346331)](https://sonarcloud.io/dashboard?id=fabianwennink_IconCaptcha-PHP) [![Sonar Bugs](https://camo.githubusercontent.com/052a4252f3c27cf60cbfa3eb95605982e839e6bfd72f4404306c582e1addee9b/68747470733a2f2f696d672e736869656c64732e696f2f736f6e61722f627567732f66616269616e77656e6e696e6b5f49636f6e436170746368612d5048503f7365727665723d6874747073253341253246253246736f6e6172636c6f75642e696f267374796c653d666c61742d737175617265266c6f676f3d736f6e6172636c6f7564)](https://sonarcloud.io/dashboard?id=fabianwennink_IconCaptcha-PHP) [![Sonar Vulnerabilities](https://camo.githubusercontent.com/c7accfb0f1f9180e0c5fe8fc599cab4b731f8717d80feb36aa7ef5d5cd563423/68747470733a2f2f696d672e736869656c64732e696f2f736f6e61722f76756c6e65726162696c69746965732f66616269616e77656e6e696e6b5f49636f6e436170746368612d5048503f7365727665723d6874747073253341253246253246736f6e6172636c6f75642e696f267374796c653d666c61742d737175617265266c6f676f3d736f6e6172636c6f7564)](https://sonarcloud.io/dashboard?id=fabianwennink_IconCaptcha-PHP)

---

Introducing IconCaptcha, a self-hosted captcha solution that's designed to be fast, user-friendly, and highly customizable. Unlike other captchas, IconCaptcha spares users the need of deciphering hard-to-read text images, solving complex math problems, or engaging with perplexing puzzle games. Instead, with IconCaptcha it's as straightforward as comparing up to 8 icons and selecting the least common one.

IconCaptcha doesn't just prioritize users; it's also developer-friendly. In just a few steps, you can have IconCaptcha integrated into your website. Even if you're new to PHP and JavaScript, installing IconCaptcha is a straightforward process. The included demo pages in this repository provide all the necessary code to get IconCaptcha up and running. For more in-depth insights, take a moment to explore the information provided on this page and the wiki.

---

### [▶ Try the live demo here!](https://www.fabianwennink.nl/projects/IconCaptcha/#!demonstration)

[](#-try-the-live-demo-here)

[![IconCaptcha light and dark theme widget examples.](https://camo.githubusercontent.com/0a5f43d14977b5390cb04f3ae1c6050c9259acb883200b0f4ad05637df9bcb27/68747470733a2f2f692e696d6775722e636f6d2f5773576442524c2e706e67 "IconCaptcha widget examples")](https://camo.githubusercontent.com/0a5f43d14977b5390cb04f3ae1c6050c9259acb883200b0f4ad05637df9bcb27/68747470733a2f2f692e696d6775722e636f6d2f5773576442524c2e706e67)

**[Using ASP.NET instead? Try IconCaptcha for ASP.NET](https://github.com/fabianwennink/IconCaptcha-ASP.NET)** *(not currently maintained - will continue in Q4 of 2023)*

---

Installation
------------

[](#installation)

### Composer

[](#composer)

```
composer require fabianwennink/iconcaptcha
```

Once the package has been installed, continue with the remaining [installation instructions](https://github.com/fabianwennink/IconCaptcha-PHP/wiki/Getting-Started#installation), followed by the [setup instructions](https://github.com/fabianwennink/IconCaptcha-PHP/wiki/Implementation).

### Manual Installation

[](#manual-installation)

It is recommended to use Composer. However, if you are unable to, follow the [manual installation instructions](https://github.com/fabianwennink/IconCaptcha-PHP/wiki/Getting-Started#manual-installation) and [setup instructions](https://github.com/fabianwennink/IconCaptcha-PHP/wiki/Implementation).

Features
--------

[](#features)

- 🏠 **Self-Hosted:** As a self-hosted solution, IconCaptcha eliminates reliance on third-party services, keeping things under your control.
- 🚫 **No Data Sharing:** Unlike other captchas, IconCaptcha's self-hosted nature ensures no user data is shared with third parties.
- 🔐 **Server-Side Validation:** All validation is carried out server-side, boosting security by eliminating exposure of sensitive processes on the client side.
- 😊 **User-Friendly:** Replace complex captchas for easily understandable images, delivering a smoother experience for your users.
- 💾 **Database Support:** Store and manage challenge data using various popular databases like MySQL, SQL Server, PostgreSQL, and SQLite.
- 🌐 **Cross-Domain Integration:** With CORS support, IconCaptcha effortlessly integrates into applications spanning different domains.
- 🎣 **Events and Hooks:** Events are triggered throughout the code, allowing you to inject custom code and fine-tune the experience to your needs.
- 🎨 **Contemporary Design:** IconCaptcha's modern design seamlessly integrates with a diverse range of styles.
- 🖌️ **Themes:** Choose from existing themes, or craft your own unique theme using the provided SASS file.
- 🔌 **jQuery Integration:** While written in plain JavaScript, IconCaptcha smoothly integrates with jQuery.

What's New in IconCaptcha 4
---------------------------

[](#whats-new-in-iconcaptcha-4)

Version 4 of IconCaptcha introduces significant enhancements to the architecture and feature set, and offers greater flexibility and customization, alongside improved security. Here are the key updates in this release:

- 📦 **Composer Compatibility:** IconCaptcha is now available on Packagist and can be installed using Composer.
- 🏗️ **Restructured Code Base:** The entire code base has been restructured, moving away from the previous one-file-does-everything approach. This restructuring makes it easier to maintain the code in the future.
- 📃 **Improved Configuration:** IconCaptcha 4 introduces a more comprehensive and polished configuration file, offering more options for customization alongside clearer descriptions for each choice.
- 💾 **Database Support:** A notable addition to this version is the inclusion of database support. Challenge data can now be stored using well-known databases like MySQL, SQL Server, PostgreSQL, and SQLite.
- 🧩 **Custom Drivers:** Want to handle certain server-side aspects your own way? IconCaptcha 4 allows you to implement custom drivers for critical features such as session management, storage, and timeout handling.
- 🎣 **Server-side Hooks:** Hook into server-side events like captcha initialization, challenge generation, and solution processing to customize the processes according to your application's needs.
- 🌐 **CORS Support:** Cross-Origin Resource Sharing (CORS) support is now available, allowing IconCaptcha to be integrated into applications spread across different domains while maintaining security standards.

Wiki
====

[](#wiki)

For instructions on installing, setting up, and configuring IconCaptcha, be sure to explore the Wiki pages:

- [Requirements](https://github.com/fabianwennink/IconCaptcha-PHP/wiki/Getting-Started#requirements) - A list of requirements to get IconCaptcha working properly.
- [Installation](https://github.com/fabianwennink/IconCaptcha-PHP/wiki/Getting-Started#installation) - Instructions on how to install/download IconCaptcha.
- [Implementing](https://github.com/fabianwennink/IconCaptcha-PHP/wiki/Implementation) - Step-by-step instructions on how to implement IconCaptcha.
- [Configuration](https://github.com/fabianwennink/IconCaptcha-PHP/wiki/Configuration) - Explanation of all available configuration options.
- [Storage](https://github.com/fabianwennink/IconCaptcha-PHP/wiki/Storage) - Details about all storage options.
- [Challenge Generator](https://github.com/fabianwennink/IconCaptcha-PHP/wiki/Challenge-Generator) - Information about how to implement a custom challenge generator.
- [Validation](https://github.com/fabianwennink/IconCaptcha-PHP/wiki/Validation) - Explanation of the validation process and error handling.
- [Hooks &amp; Events](https://github.com/fabianwennink/IconCaptcha-PHP/wiki/Hooks-&-Events) - Overview of events which are triggered at different stages in the captcha process.
- [Token](https://github.com/fabianwennink/IconCaptcha-PHP/wiki/Token) - Information about the usage of the optional widget security token.
- [Themes](https://github.com/fabianwennink/IconCaptcha-PHP/wiki/Themes) - Details on creating and setting up custom themes.
- [Localization](https://github.com/fabianwennink/IconCaptcha-PHP/wiki/Localization) - Details on how to customize the localization strings.

Credits
-------

[](#credits)

The icons used in this project are made by [BlendIcons](https://blendicons.com/).

License
-------

[](#license)

This project is licensed under the [MIT](https://www.fabianwennink.nl/projects/IconCaptcha/license) license.

###  Health Score

45

—

FairBetter than 93% of packages

Maintenance52

Moderate activity, may be stable

Popularity48

Moderate usage in the ecosystem

Community19

Small or concentrated contributor base

Maturity48

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 99.6% 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 ~84 days

Recently: every ~136 days

Total

8

Last Release

336d ago

### Community

Maintainers

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

---

Top Contributors

[![fabianwennink](https://avatars.githubusercontent.com/u/5164060?v=4)](https://github.com/fabianwennink "fabianwennink (258 commits)")[![gries](https://avatars.githubusercontent.com/u/417823?v=4)](https://github.com/gries "gries (1 commits)")

---

Tags

anti-botbotscaptchacaptcha-alternativecaptcha-generatorcaptcha-imageform-validationgdpr-complianticon-captchaiconcaptchajavascript-captchajquery-captchaphp-captchasecurityuser-friendlyspamcaptchaanti-spamanti-botbotsiconcaptcha

### Embed Badge

![Health badge](/badges/fabianwennink-iconcaptcha/health.svg)

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

###  Alternatives

[gregwar/captcha

Captcha generator

1.8k9.6M138](/packages/gregwar-captcha)[karser/karser-recaptcha3-bundle

Google ReCAPTCHA v3 for Symfony

1862.4M7](/packages/karser-karser-recaptcha3-bundle)[gregwar/captcha-bundle

Captcha bundle

3524.7M32](/packages/gregwar-captcha-bundle)[usarise/turnstile

PHP library for Turnstile, is Cloudflare’s smart CAPTCHA alternative. It can be embedded into any website without sending traffic through Cloudflare and works without showing visitors a CAPTCHA.

2393.5k6](/packages/usarise-turnstile)[s1syphos/php-simple-captcha

Simple captcha generator

2737.8k6](/packages/s1syphos-php-simple-captcha)[fruitcakestudio/recaptcha

reCAPTCHA library

1625.5k1](/packages/fruitcakestudio-recaptcha)

PHPackages © 2026

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