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
Top keywords
- altcha29×3.47%
- openporte22×2.63%
- v114×1.67%
- settings9×1.08%
- wordpress8×0.96%
- source7×0.84%
- spam7×0.84%
- api6×0.72%
- v26×0.72%
- v2 v36×0.72%
- v36×0.72%
- challenge5×0.60%
Spam_BLIP
Spam BLIP stops comment and ping spam from being posted, primarily by checking the IP address attempting to post a comment in one or more of the public DNS blacklists. A number of options are available to refine the check, and with the option defaults, a DNS lookup is only performed the first time an address attempts to post a comment; thereafter, the address might quickly ‘pass’ because it was not listed, or quickly be rejected because it was listed. Spam BLIP creates, and maintains, a database table for this purpose, and database lookups are quite fast. Therefore, concerns about DNS lookup time can be limited to an initial comment attempt. Here are some features of Spam BLIP to consider if you are not yet falling over yourself to get it installed: When WordPress is producing a page for a visitor, it checks whether comments are open for each post, and it allows plugins to “filter” the check. Spam BLIP uses that filter, but does not do DNS lookups at this stage, because DNS lookups can take perceptible time. Spam BLIP does check optional user-set black and white lists, and optionally existing comments that are marked as spam, and of course Spam BLIP’s own database records. Those checks are fast, so they should not have a perceptible effect on page loading. Furthermore, on pages with multiple posts, WordPress runs the filter for each, but Spam BLIP stores the first result, so even the fast checks are not repeated. When a comment is actually submitted, Spam BLIP does the above checks, then the DNS lookup only if necessary. At this stage, if the DNS lookup causes a perceptible delay, a real human (or very clever pet) making the comment should perceive it as mere server-side processing. As for spammer robots . . . let them wait. Spam BLIP comes configured with blacklist domains that have worked well during development, so a user should not need to be concerned with the blacklists, but there is an advanced option to add or delete, activate or disable (yet save) list domains, and configure the interpretation of a return from a successful lookup. Spam BLIP provides user-set whitelist and blacklist options. Spam BLIP provides options to check for pings/trackbacks, and for user registrations. (The option to blacklist-check user registration is off by default. See “Tips” under the help tab on the Spam BLIP settings page.) Spam BLIP provides options to configure a ‘Time To Live’ (TTL) for its database records, and a maximum number of records. The TTL is important because, generally, an IP address should not be marked permanently. Consider an ISP that quickly disables any account that is found to be spamming. An honest ISP is also a victim of spammer abuse, and will need to reuse addresses. DNS blacklist operators provide means for IP address owners to get records removed — Spam BLIP provides a configurable TTL for its records. (Database table maintenance is triggered approximately hourly by a WordPress cron event.) Spam BLIP will optionally check if a commenter address is a TOR exit node. TOR (The Onion Router) is an important protection for people who need or wish for anonymity. You may want to accept comments from TOR users (you should), but unfortunately spammers have exploited and abused TOR, which has led some DNS blacklist operators to include TOR exit node addresses whether or not it is known that the address is spamming. If you enable this option (you should), it might let some spam get through. In this case, mark the comment as spam, and use the Spam BLIP option to check existing comments marked as spam; or use Spam BLIP in concert with another sort of spam filter, such as one that analyzes comment content. (Please report any conflict with other, non-DNS blacklist type spam plugins. Note that Spam BLIP is not expected to work in concert with other DNS-type anti-spam plugins.) Spam BLIP includes a widget that will show options and records information. The widget might or might not be an enhancement to your page, but in any case it should provide feedback while you evaluate Spam BLIP, so it might be used temporarily.