=== Access Guard === Contributors: neebplugins Tags: access control, access protection, restrict content, IP blocking, user access manager Requires at least: 6.2 Tested up to: 7.1 Requires PHP: 7.4 Stable tag: 1.1.0 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Access Guard enhances security by managing user permissions and banning IPs to protect sensitive content. == Description == Access Guard is a comprehensive WordPress plugin that enhances access protection, controls user permissions, and provides IP banning functionality. With Access Guard, you can safeguard your website from malicious users, protect sensitive content, and strengthen overall security measures. == Free Features == - IP Blocking: Easily ban specific IP addresses or IP ranges to prevent unwanted traffic and protect your website from malicious users. - IP Whitelisting: Restrict access to only a specific list of IP addresses or ranges, blocking everyone else. Administrators are always exempt to prevent accidental lockouts. - Customizable Ban Messages: Personalize the messages displayed to blocked users, providing instructions or redirecting them to alternative content. - User Role-Based Access Control: Define access permissions for different user roles, restricting content visibility or interaction based on user roles. - Restricted Content: Mark individual posts or pages as restricted so only users who can read content may view them. - Basic Brute Force Protection: Failed login attempts are automatically throttled — after 5 failed attempts from the same IP, further login attempts from that IP are locked out for 20 minutes. == Coming Soon == - Password Protection: Add password protection to specific pages or posts, granting access only to those who enter the correct password. - Time-Based Access Control: Set time-based restrictions to make content available for a limited period, perfect for time-sensitive promotions or temporary exclusivity. - Activity Logging: Keep track of user activities, including IP ban events and access attempts, to monitor website security. == Paid Features ( Coming Soon ) == - Advanced Brute Force Protection: Enhance login security with advanced measures like CAPTCHA verification, two-factor authentication, and login attempt limiting. - Advanced IP Blocking: Unlock advanced IP blocking options, such as blocking entire countries or regions based on IP geolocation data. - Advanced Access Control Rules: Create complex access control rules based on user roles, specific conditions, or custom criteria. - Advanced Activity Logging and Notifications: Receive detailed email notifications for critical events, and access comprehensive activity logs with advanced filtering and search options. - Multisite Support: Extend Access Guard's capabilities to WordPress multisite installations, managing access and IP blocking across multiple sites. - Developer API: Utilize a developer-friendly API to extend Access Guard's functionality or integrate it with other plugins or custom solutions. - Priority Support: Access premium support channels, including priority email support and dedicated assistance from the plugin developers. == Installation == 1. Upload the 'access-guard' folder to the '/wp-content/plugins/' directory. 2. Activate the plugin through the 'Plugins' menu in WordPress. 3. Configure the access protection settings and IP blocking rules in the plugin settings page. 4. Customize the ban messages and access control rules according to your requirements. 5. Enjoy enhanced access protection and security for your WordPress website. == Frequently Asked Questions == = Can I block specific IP addresses or IP ranges? Yes, Access Guard allows you to easily ban specific IP addresses or IP ranges to prevent unwanted traffic and protect your website. = Can I control user access based on their roles? Absolutely! Access Guard provides user role-based access control, allowing you to define different access permissions for different user roles. = Can I customize Ban Message? Yes, you can personalize the messages displayed to blocked users. = Will Access Guard lock me out of my own site? No. Administrators (users who can manage options) are always exempt from IP bans, IP whitelisting, and role-based access rules, so you can't accidentally lock yourself out. = Does this work with full-page caching (Varnish, Cloudflare, a caching plugin serving static HTML)? IP-based checks run in PHP on every request, so if a page is served entirely from a cache layer in front of WordPress, a banned visitor may still receive the cached page. Exclude logged-out dynamic checks from your cache, or check your host/CDN's IP-blocking feature for edge-level enforcement. == Changelog == = 1.1.0 = * Fixed: undefined method call that crashed any restricted post/page for every visitor. * Fixed: settings page heading/description not rendering due to missing output. * Fixed: IP ban could be bypassed by spoofing client-supplied headers; now uses the server-verified connection IP. * Fixed: broken singleton pattern in the main plugin class. * Fixed: PHP notices on archive/search pages from an unguarded global $post. * Added: IP whitelisting. * Added: basic brute force protection on wp-login (5 attempts, 20 minute lockout). * Added: administrators are now always exempt from bans to prevent lockouts. * Added: settings are now sanitized on save. * Replaced the ~2.9MB Tailwind CSS build with a lightweight Bootstrap-based admin UI (under 200KB total). = 1.0.1 = * Bug fixes = 1.0.0 = * Initial release == Upgrade Notice == = 1.1.0 = Fixes a crash on restricted content, a spoofable IP-ban bypass, and adds IP whitelisting plus basic brute force protection. Recommended update. == License == This plugin is licensed under the GPLv2 or later. For more details, see the License URI mentioned above. == Support == For any support inquiries or feature requests, please email neebplugins@gmail.com or contact Support Desk