Cardea – Proof-of-Work Comment Spam Protection
Are you tired of anti-spam plugins that bloat your site, inject third-party tracking, or constantly upsell you on premium SaaS subscriptions? Are you looking for a straightforward, lightweight solution that just protects your comments without the extra baggage? Then Cardea is the right tool for you. Cardea is a radically simple, zero-dependency Proof-of-Work (PoW) comment spam protector. Developed transparently on GitHub as a purely open-source project, it does one thing and does it perfectly: it stops automated bot spam on native WordPress comments. Why Choose Cardea? Cardea offers distinct advantages for site owners who value simplicity, privacy, and performance: Hyper-Focused & Zero Bloat – Cardea is strictly dedicated to the native WordPress comment system. Unlike multi-purpose anti-spam plugins that inject heavy compatibility layers for various form builders and e-commerce platforms, Cardea remains extremely lightweight and performant—protecting only what you need protected. 100% Standalone & Sovereign – No external API keys. No commercial SaaS tiers. No phone-home telemetry. Cardea is entirely self-hosted and self-contained. Your comment protection never depends on a third-party service staying alive. Strict Privacy (GDPR Compliant) – Because the Proof-of-Work computation happens locally in each visitor’s browser, there are no tracking cookies, no user profiles, and no third-party data transfers. Unlike cloud-based CAPTCHA solutions, Cardea transmits nothing to external servers—making it inherently GDPR-friendly. Reduced Attack Surface – By doing one thing perfectly (protecting native comments), Cardea avoids the security vulnerabilities inherent in massive, multi-ecosystem integrations. A focused codebase means fewer CVEs and tighter security. Plug-and-Play Simplicity – No complex routing rules. No integration toggles. No configuration mazes. Users simply activate Cardea and their discussion threads are protected immediately. To view the source code, contribute, or report issues, visit the Cardea GitHub Repository. How It Works Challenge Generation: When a page with a comment form loads, the server generates a cryptographically signed challenge using HMAC-SHA256. No database write occurs at this stage. Client-Side Mining: When a user focuses on the comment textarea, a JavaScript Web Worker begins mining in the background. Solution Discovery: The worker repeatedly hashes the challenge string (nonce + timestamp + salt) with incrementing counter values until it finds a hash with the required number of leading zeros. Server Verification: On submission, the server first verifies the HMAC signature (ensuring the challenge wasn’t tampered with), then validates the PoW solution, and finally stores a transient to prevent replay attacks. Features Zero Database Bloat on Load – Challenges are generated using stateless HMAC signatures, meaning the plugin requires exactly zero database writes when a visitor loads a page. Zero Dependencies – No external APIs or services required. Client-Side Mining – Heavy computation happens in the user’s browser using Web Workers. Deferred Execution – The cryptographic mining engine only spins up when a user interacts with the comment field, ensuring casual readers incur zero performance penalty. Self-Cleaning Replay Protection – Server-side state is only stored upon a successful comment submission to prevent bot replay attacks, and expired tokens are automatically swept by WordPress cron. Server-Side Verification – Server verifies HMAC signature first, then performs SHA-256 PoW validation. Configurable Difficulty – Adjust the number of leading zeros required (1-8). Configurable Time Window – Set how long challenges remain valid (5-120 minutes). Non-Intrusive – Works transparently for legitimate users; spammers must complete the PoW challenge. WordPress Standards – Follows WordPress coding standards and best practices. Privacy First (GDPR Friendly) – No cookies, no user tracking, no CAPTCHA popups, and absolutely zero data sent to third-party cloud APIs. Smart Pathway Protection – Flawlessly protects frontend forms and blocks XML-RPC botnets, while seamlessly allowing native Trackbacks and authenticated REST API requests. Page Caching Compatible – Uses dynamic REST API endpoint to fetch fresh challenges, ensuring compatibility with edge caching (Cloudflare, Varnish) and full-page caching plugins. Logged-In User Bypass – Skips PoW challenge for authenticated users, eliminating unnecessary CPU usage on the frontend. Architecture & Testing Cardea is built with an enterprise-grade engineering stack focused on reliability and performance: Frontend Architecture: * Zero-dependency JavaScript using native Web Crypto APIs (crypto.subtle) * Web Workers for background cryptographic mining (non-blocking UI) * Dynamic challenge fetching via REST API (compatible with page caching) * Skip PoW for logged-in users (zero CPU overhead for authenticated commenters) Backend Architecture: * Localized replay protection using WordPress transients * Auto-cleaning expired tokens via WordPress cron * Single verification pass: signature check + PoW validation Testing Stack: * PHPUnit – Backend logic verification (HMAC generation, challenge validation, replay prevention) * Jest – Cryptographic worker validation (difficulty checking, solution finding, message interface) * Playwright – End-to-End browser testing integrated with WordPress Playground (full WordPress environment) This comprehensive testing approach ensures the plugin handles legitimate users seamlessly while actively blocking sophisticated bot attacks. Developer Rigor Cardea is built with an enterprise-grade engineering stack focused on reliability and performance: Architecture: * Zero Database Bloat on Load – Stateless HMAC signatures ensure zero database writes on page load * Self-Cleaning Replay Protection – Uses WordPress transients that auto-expire via cron * Deferred Execution – Mining only starts when user interacts with comment field Testing Stack: * PHPUnit – Backend logic verification (HMAC generation, challenge validation, replay prevention) * Jest – Cryptographic worker validation (difficulty checking, solution finding, message interface) * Playwright – End-to-End browser testing integrated with WordPress Playground (full WordPress environment) Cross-Theme Compatibility: * Uses HTMLFormElement.prototype.submit.call() to bypass DOM clobbering issues * Graceful fallback for browsers without Web Worker support
Top keywords
- cardea13×1.52%
- wordpress12×1.41%
- challenge9×1.06%
- zero9×1.06%
- comment8×0.94%
- pow7×0.82%
- replay7×0.82%
- user7×0.82%
- hmac6×0.70%
- mining6×0.70%
- testing6×0.70%
- validation6×0.70%
OpenPorte Spam Protection
OpenPorte is a free and open-source plugin that protects WordPress forms from spam using a lightweight Proof-of-Work challenge instead of CAPTCHAs. The goal is to make spam expensive for bots while keeping the experience almost invisible for legitimate visitors and respecting their privacy. For site owners, OpenPorte offers an easy to configure and deploy modern spam protection under their control. For the site users, it offers an accessible, transparent and privacy-friendly alternative to CAPTCHAs. OpenPorte is built around the open-source ALTCHA widget. Some highlights: CAPTCHA-free spam protection Fully open source (GPL) Self-hosted – no mandatory external service Designed to be accessible and privacy-friendly Compatible with existing ALTCHA integrations Easy migration for users of ALTCHA Spam Protection v1 (≤ 1.26.3) For the list of contributors, refer to our GitHub project: Contributors. AI-assisted development AI-assisted project. Architecture, security decisions, and final review are mine; AI tools (Claude, Mistral, and others) help with drafting code, tests, translations, and documentation — without them, one person couldn’t keep this fork alive. Background The original ALTCHA Spam Protection WordPress plugin (v1) was open source (GPLv2). Its authors have since released a version 2/3 which is no longer open source. They no longer maintain the open source project and recommend that users migrate to v2/v3. See the official project at https://altcha.org for their offering. OpenPorte started as a fork and continues the v1 line as free software (GPLv2 or later) for users who want to stay on a fully open-source, self-hosted solution. It is a faithful fork: existing v1 installations can switch to OpenPorte and keep their settings (see Upgrading). Compatibility OpenPorte is backward-compatible with ALTCHA Spam Protection v1 plugin: Your existing settings are migrated automatically on activation. The [altcha] shortcode keeps working (alongside the new [openporte]). The altcha_* filters and actions keep firing as deprecated aliases. Custom API Mode has been verified against GateCHA, an open source server implementing the creation and verification of ALTCHA challenges. See the Deprecations section for the full list of compatibility aliases and what they map to. Upgrading From the original ALTCHA v1 plugin Deactivate the old ALTCHA plugin, then install and activate OpenPorte. Your existing configuration is detected and copied into the OpenPorte settings on first activation; the original ALTCHA settings are left untouched, so you can roll back to ALTCHA v1 without losing anything. Do not run both plugins at the same time. From ALTCHA v2/v3 If your site was already moved to ALTCHA v2/v3 (for example by the automatic 3.0.0 update), your original v1 settings are normally still in the database: the v2/v3 upgrade neither migrates nor removes them. Deactivate ALTCHA, then install and activate OpenPorte — it finds and imports the v1 settings, even when the v1 plugin itself has long been deleted. Settings made in v2/v3 are not read. Deprecations The following ALTCHA-era identifiers are kept as aliases for backward compatibility and are scheduled for removal in a future release: The [altcha] shortcode — use [openporte]. The altcha/v1 REST namespace — use openporte/v1. The altcha_* filters and actions — now firing through WordPress’ deprecated hook mechanism; use the openporte_* equivalents. The AltchaPlugin class and the ALTCHA_VERSION / ALTCHA_WIDGET_VERSION constants — use OpenPortePlugin and the OPENPORTE_* constants. Integrations targeting paid-only third-party plugins; affected users should migrate to the official ALTCHA v2/v3 plugin. The “Custom HTML” integration (auto-configuration of hand-written tags) — place the [openporte] shortcode instead. You can re-enable it for now under Settings → OpenPorte → Integrations. Privacy No cookies, no tracking OpenPorte prioritizes user privacy by avoiding the use of cookies and fingerprinting techniques. No external service This plugin remains fully contained within your WordPress installation, eliminating any reliance on external services. Modes of Operation OpenPorte verifies submissions in one of two modes, selected in the settings (API Mode): Self-hosted (default) — a proof-of-work challenge is issued and verified by your own WordPress site through the REST API. Fully self-contained, with no external service and no additional setup beyond enabling the integrations you need. Custom — point the Challenge URL at your own ALTCHA-compatible backend (for example a self-hosted ALTCHA Sentinel, or GateCHA). Submissions are verified with your site’s shared secret. The paid altcha.org regional SaaS classifier offered by earlier versions has been removed; both remaining modes are free and self-hostable. REST API This plugin requires the WordPress REST API. If you are using any “Disable REST API” plugins, ensure that the endpoint /altcha/v1/challenge (marked for deprecation) and /openporte/v1/challenge are allowed. Supported Integrations CoBlocks Contact Form 7 Elementor Pro Forms (deprecated — paid plugin, see Deprecations) Formidable Forms Forminator GravityForms HTML Forms wpDiscuz WPForms WordPress Login, Register, Password reset WordPress Comments WooCommerce Many other plugins and your own content (via the [openporte] shortcode, or the deprecated [altcha] alias) Source Code All source code for the plugin, and the ALTCHA widget is available on GitHub. In the repository, you’ll also find versions of non-minified JavaScript and CSS assets: Plugin: https://github.com/openporte/openporte ALTCHA Widget: https://github.com/altcha-org/altcha