Pinny’s REST Lock – Block REST User Enumeration
Blocks public REST API user enumeration while preserving full WordPress functionality. Pinny’s REST Lock is an ultra-lightweight security plugin that locks down WordPress REST API user endpoints without breaking your site. It is designed to fix one of the most common and overlooked WordPress security issues — public user enumeration via the REST API — using the correct, core-aligned approach. 🚨 Why This Plugin Is Necessary By default, WordPress publicly exposes REST API endpoints such as: /wp-json/wp/v2/users On public sites, these endpoints can be accessed without authentication and are routinely used as the first step in real-world attacks. This is where attackers start. Public access to REST user endpoints allows attackers to: Enumerate valid usernames Identify administrator and privileged accounts Eliminate guesswork before brute-force attacks Chain enumeration with login abuse and password reset attacks This is not theoretical. User enumeration is a baseline reconnaissance technique used by bots and human attackers alike. Blocking public access to REST user endpoints should be considered required security hygiene for every WordPress site. ⚠️ Common REST Protection Pitfalls Securing REST user endpoints requires precision. Broad or poorly timed restrictions often introduce serious side effects. Common issues include: Blocking all users, including administrators, which breaks authenticated workflows Disabling the REST API entirely, causing the block editor, WooCommerce, and modern plugins to fail Applying restrictions before authentication, preventing WordPress from distinguishing public and authorized requests Allowing low-privilege roles, such as subscribers, to retain access — leaving user enumeration possible Effective protection must be narrowly scoped, permission-aware, and aligned with WordPress core behavior. ✅ How Pinny’s REST Lock Works Pinny’s REST Lock takes a surgical, WordPress-native approach: Targets only REST API user endpoints Runs after WordPress authentication Allows access only to users with appropriate permissions Returns a proper 403 Forbidden response to unauthorized requests What this means: Administrators continue to work normally The REST API remains fully functional Gutenberg, WooCommerce, and REST-based plugins are unaffected Only public user enumeration is blocked This follows WordPress core’s intended permission model. 🚀 Ultra-Lightweight by Design Pinny’s REST Lock is intentionally minimal: ~1.3 KB uncompressed Single-file plugin No settings page No database tables No logs No tracking No ads No performance impact It activates, applies the protection, and gets out of the way. 🛡️ A Required Fix for Modern WordPress Sites If your site is public, your REST user endpoints should not be. Pinny’s REST Lock closes one of the most common entry points attackers look for — without breaking WordPress, without blocking admins, and without adding bloat. Install it. Activate it. And remove an entire class of attacks from your site.
Really Simple Security – Simple and Performant Security (formerly Really Simple SSL)
Easily improve site security with WordPress Hardening, Two-Factor Authentication (2FA), Login Protection, Vulnerability Detection and SSL certificate. Really simple, Effective and Performant WordPress Security Really Simple Security is the most lightweight and easy-to-use security plugin for WordPress. It secures your WordPress website with SSL certificate generation, including proper 301 https redirection and SSL enforcement, scanning for possible vulnerabilities, Login Protection and implementing essential WordPress hardening features. We believe that security should have the absolute minimum effect on website performance, user experience and maintainability. Therefore, Really Simple Security is: Lightweight: Every security feature is developed with a modular approach and with performance in mind. Disabled features won’t load any redundant code. Easy-to-use: 1-minute configuration with short onboarding setup. Security Features Easy SSL Migration Migrates your website to HTTPS and enforces SSL in just one click. 301 redirect via PHP or .htaccess Secure cookies Let’s Encrypt: Install an SSL Certificate if your hosting provider supports manual installation. Server Health Check: Your server configuration is every bit as important for your website security. WordPress Hardening Tweak your configuration and keep WordPress fortified and safe by tackling potential weaknesses. Prevent code execution in the uploads folder Prevent login feedback and disable user enumeration Disable XML-RPC Disable directory browsing Username restrictions (block ‘admin’ and public names) and much more.. Vulnerability Detection Get notified when plugins, themes or WP core contain vulnerabilities and need appropriate action. Login Protection Allow or enforce Two-Factor Authentication (2FA) for specific user roles. Users receive a two-factor code via Email. Improve Security with Really Simple Security Pro Protect your site with all essential security features by upgrading to Really Simple Security Pro. Advanced SSL enforcement Mixed Content Scan & Fixer. Detect files that are requested over HTTP and fix them to HTTPS, both Front- and Back-end. Enable HTTP Strict Transport Security and configure your site for the HSTS Preload list. Firewall Really Simple Security Pro includes a performant and efficient WordPress firewall, to stop bots, crawlers and bad actors with IP and username blocks. 404 blocking – Blocks crawlers as they trigger unusual numbers of 404 errors. Region blocking – Only allow/block access to your site from specific regions. Automated and customisable Firewall rules. IP blocklist and allowlist. Security Headers Security headers protect your site visitors against the risk of clickjacking, cross-site-forgery attacks, stealing login credentials and malware. Independent of your Server Configuration, works on Apache, LiteSpeed, NGINX, etc. Protect your website visitors with X-XSS Protection, X-Content-Type-Options, X-Frame-Options, a Referrer Policy and CORS headers. Automatically generate your WordPress-tailored Content Security Policy. Vulnerability Measures When a vulnerability is detected in a plugin, theme or WordPress core you will get notified accordingly. With Vulnerability Measures, you can configure simple but effective measures to make sure that a critical vulnerability won’t remain unattended. Force update: An update process will be tried multiple times until it can be assumed development of a theme or plugin is abandoned. You will be notified during these steps. Quarantine: When a plugin or theme can’t be updated to solve a vulnerability, Really Simple Security can quarantine the plugin. Advanced Site Hardening Choose a custom login URL Automated File Permissions check and fixer Rename and randomize your database prefix Change the debug.log file location to a non-public folder Disable application passwords Control admin creation Disable HTTP methods, reducing HTTP requests Login Protection Secure your website’s login process and user accounts with powerful security measures. Two-Step verification (Email login) 2FA (two factor authentication) with TOTP Passwordless login with passkey login Enforce strong passwords and frequent password change Limit Login Attempts With Limit Login Attempts you can configure a threshold to temporarily or permanently block IP addresses or (non-existing) usernames. You can also throw a CAPTCHA after a failed login (hCaptcha or Google reCaptcha) Access Control Restrict access to your site for specific regions. Add specific IP addresses or IP ranges to the Blocklist or Allowlist. Useful Links Documentation Security Definitions Translate Really Simple Security Issues & pull requests Feature requests Love Really Simple Security? If you want to support the continuing development of this plugin, please consider buying Really Simple Security Pro, which includes some excellent security features and premium support. About Really Simple Plugins Our mission is to make complex WordPress requirements really easy. Really Simple Security is developed by Really Simple Plugins. For generating SSL certificates, Really Simple Security uses the le acme2 PHP Let’s Encrypt client library, thanks to ‘fbett’ for providing it. Vulnerability Detection uses WP Vulnerability, an open-source initiative by Javier Casares. Want to join as a collaborator? We’re on GitHub as well!