{"id":288362,"date":"2026-04-18T18:33:44","date_gmt":"2026-04-18T18:33:44","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/login-limiter\/"},"modified":"2026-04-26T19:50:05","modified_gmt":"2026-04-26T19:50:05","slug":"oriole-one-master-guard","status":"publish","type":"plugin","link":"https:\/\/zgh.wordpress.org\/plugins\/oriole-one-master-guard\/","author":23463292,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.0","stable_tag":"1.1.0","tested":"6.9.4","requires":"6.4","requires_php":"8.0","requires_plugins":null,"header_name":"Oriole One Master Guard","header_author":"Rashid Sharafat","header_description":"Advanced WordPress security plugin providing brute-force protection, REST API hardening, sitemap control, SEO-safe indexing rules, and system-level protections.","assets_banners_color":"","last_updated":"2026-04-26 19:50:05","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":213,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq"],"tags":{"1.1.0":{"tag":"1.1.0","author":"rashidsharafat","date":"2026-04-26 19:50:05"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3509760,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"<strong>Limit Logins tab<\/strong> \u2014 Configure maximum failed attempts, attempt window, lockout duration, and whether IP locking, username locking, or both are enabled.","2":"<strong>Hardening tab<\/strong> \u2014 Enable or disable individual security hardening features using simple checkboxes.","3":"<strong>Code Preview tab<\/strong> \u2014 View the generated hardening snippets for transparency and reference.","4":"<strong>Failed Logs tab<\/strong> \u2014 Audit table listing blocked login attempts with username, IP address, geolocation, attempt count, and block timestamps."}},"plugin_section":[],"plugin_tags":[2439,31093,9374,1229,600],"plugin_category":[54],"plugin_contributors":[260528],"plugin_business_model":[],"class_list":["post-288362","plugin","type-plugin","status-publish","hentry","plugin_tags-brute-force","plugin_tags-hardening","plugin_tags-limit-login-attempts","plugin_tags-login-security","plugin_tags-security","plugin_category-security-and-spam-protection","plugin_contributors-rashidsharafat","plugin_committers-rashidsharafat"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/oriole-one-master-guard\/assets\/icon-256x256.png?rev=3509760","icon_2x":"https:\/\/ps.w.org\/oriole-one-master-guard\/assets\/icon-256x256.png?rev=3509760","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>Oriole One Master Guard<\/strong> is a lightweight, all-in-one security plugin for WordPress. It protects your site against brute-force login attacks, hardens common WordPress attack surfaces, and gives you full control over your security configuration from a clean admin interface \u2014 all without touching WordPress core files.<\/p>\n\n<p>Whether you run a personal blog, a business site, or manage WordPress for clients, Oriole One Master Guard is designed to be straightforward to configure and effective out of the box.<\/p>\n\n<h4>Who Is This For?<\/h4>\n\n<ul>\n<li>Site owners who want meaningful login protection without relying on a large, bloated security suite.<\/li>\n<li>Developers who need a practical hardening toolkit with sensible defaults they can tune.<\/li>\n<li>Agencies managing multiple WordPress installations who need reliable, low-maintenance protection.<\/li>\n<\/ul>\n\n<h4>What It Does<\/h4>\n\n<p><strong>Brute-Force Login Protection<\/strong>\nLimits the number of failed login attempts allowed from a given IP address or username within a configurable time window. Once the threshold is reached, the account is temporarily locked and further attempts are blocked. A replay-safe token system ensures that hitting the browser back button or refreshing after a failed attempt does not count as additional attempts.<\/p>\n\n<p><strong>Security Hardening<\/strong>\nA dedicated Hardening tab lets you enable or disable individual hardening features with a single checkbox. The plugin applies these protections directly using standard WordPress hooks and filters, keeping the setup simple and safe.<\/p>\n\n<p>Hardening options include:<\/p>\n\n<ul>\n<li>Block XML-RPC requests site-wide<\/li>\n<li>Remove the users provider from WordPress sitemaps<\/li>\n<li>Return HTTP 404 for author archive pages and prevent username enumeration via ?author=N queries<\/li>\n<li>Restrict the \/wp-json\/wp\/v2\/users REST endpoint to logged-in users with the list_users capability<\/li>\n<li>Remove the WordPress version tag, RSD link, WLW manifest, oEmbed discovery links, and REST API head link<\/li>\n<li>Add a noindex, follow meta tag to category, tag, and author archive pages<\/li>\n<\/ul>\n\n<p><strong>Code Preview<\/strong>\nThe Code Preview tab shows the generated reference snippets that correspond to your current hardening settings. This output is read-only and provided for transparency only. The plugin does not ask administrators to paste or save arbitrary PHP, JavaScript, or CSS.<\/p>\n\n<p><strong>Failed Login Audit Log<\/strong>\nEvery lockout is recorded in a persistent audit table showing the blocked username, IP address, geolocation country, number of attempts, and the time the block was placed and will expire. Individual entries can be removed, or the entire log can be cleared with one click.<\/p>\n\n<h4>Why Choose Oriole One Master Guard?<\/h4>\n\n<ul>\n<li><strong>Focused and lightweight<\/strong> \u2014 does exactly what the name says with no unnecessary bulk.<\/li>\n<li><strong>Transparent<\/strong> \u2014 the hardening behavior is clearly visible in the admin and not hidden in plugin internals.<\/li>\n<li><strong>Non-destructive<\/strong> \u2014 uses WordPress hooks and the Settings API only; never modifies core files or theme files.<\/li>\n<li><strong>Auditable<\/strong> \u2014 every lockout event is logged so you always know what happened and when.<\/li>\n<\/ul>\n\n<h3>Requirements<\/h3>\n\n<ul>\n<li><strong>WordPress:<\/strong> 6.4 or higher<\/li>\n<li><strong>PHP:<\/strong> 8.0 or higher<\/li>\n<\/ul>\n\n<h3>Support<\/h3>\n\n<p>For questions, bug reports, or feature requests, please use the support forum on the plugin's WordPress.org page. When reporting a bug, include your WordPress version, PHP version, and a description of the steps to reproduce the issue.<\/p>\n\n<!--section=installation-->\n<h4>Automatic Installation<\/h4>\n\n<ol>\n<li>Log in to your WordPress admin dashboard.<\/li>\n<li>Go to <strong>Plugins &gt; Add New Plugin<\/strong>.<\/li>\n<li>Search for <strong>Oriole One Master Guard<\/strong>.<\/li>\n<li>Click <strong>Install Now<\/strong>, then click <strong>Activate<\/strong>.<\/li>\n<li>Go to <strong>Settings &gt; Oriole One Master Guard<\/strong> to configure the plugin.<\/li>\n<\/ol>\n\n<h4>Manual Installation<\/h4>\n\n<ol>\n<li>Download the plugin zip file from WordPress.org.<\/li>\n<li>Log in to your WordPress admin dashboard.<\/li>\n<li>Go to <strong>Plugins &gt; Add New Plugin<\/strong> and click <strong>Upload Plugin<\/strong>.<\/li>\n<li>Choose the downloaded zip file and click <strong>Install Now<\/strong>.<\/li>\n<li>Click <strong>Activate Plugin<\/strong>.<\/li>\n<li>Go to <strong>Settings &gt; Oriole One Master Guard<\/strong> to configure the plugin.<\/li>\n<\/ol>\n\n<h4>First-Time Setup<\/h4>\n\n<p>After activation, the plugin is immediately active with secure default settings. Visit each tab to review and adjust:<\/p>\n\n<ul>\n<li><strong>Limit Logins<\/strong> \u2014 set your preferred attempt threshold, window duration, and lockout length.<\/li>\n<li><strong>Hardening<\/strong> \u2014 enable the security features that apply to your site.<\/li>\n<li><strong>Code Preview<\/strong> \u2014 review the generated hardening snippets for reference.<\/li>\n<li><strong>Failed Logs<\/strong> \u2014 monitor blocked login attempts.<\/li>\n<\/ul>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20modify%20my%20theme%27s%20functions.php%20file%3F\"><h3>Does this plugin modify my theme's functions.php file?<\/h3><\/dt>\n<dd><p>No. The plugin does not write to your theme files or ask you to save custom code. All protections are applied directly through standard WordPress hooks and filters.<\/p><\/dd>\n<dt id=\"will%20the%20hardening%20features%20conflict%20with%20other%20plugins%3F\"><h3>Will the hardening features conflict with other plugins?<\/h3><\/dt>\n<dd><p>Each generated hardening snippet is wrapped in a function_exists() check, so they will not conflict with functions of the same name defined elsewhere. If you are already using another plugin to handle one of the same concerns (for example, blocking XML-RPC), you can simply leave that toggle unchecked.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20deactivate%20or%20uninstall%20the%20plugin%3F\"><h3>What happens if I deactivate or uninstall the plugin?<\/h3><\/dt>\n<dd><p>Deactivating the plugin stops all brute-force protection and removes the security hooks. Uninstalling the plugin removes the stored plugin options from the database and cleans up legacy files from older versions if present. Your theme files are not affected in either case.<\/p><\/dd>\n<dt id=\"can%20i%20edit%20the%20generated%20hardening%20code%3F\"><h3>Can I edit the generated hardening code?<\/h3><\/dt>\n<dd><p>The Code Preview tab is read-only and provided for reference only. In line with WordPress.org security guidance, the plugin does not allow administrators to store or execute arbitrary PHP, JavaScript, or CSS.<\/p><\/dd>\n<dt id=\"why%20is%20geolocation%20shown%20as%20%22unknown%22%3F\"><h3>Why is geolocation shown as \"Unknown\"?<\/h3><\/dt>\n<dd><p>Geolocation is resolved locally using PHP server extensions. If your hosting environment does not have a GeoIP extension or database available, the country value will display as Unknown. The login protection itself is not affected \u2014 all lockout logic is based on IP address, not geolocation.<\/p><\/dd>\n<dt id=\"can%20i%20unblock%20a%20locked%20user%20or%20ip%20manually%3F\"><h3>Can I unblock a locked user or IP manually?<\/h3><\/dt>\n<dd><p>Yes. Go to the <strong>Failed Logs<\/strong> tab in the plugin settings. You can remove individual entries using the <strong>Remove<\/strong> button next to each row, which will also release any active lock for that user or IP. The <strong>Clear Entries<\/strong> button removes all log entries and releases all active locks at once.<\/p><\/dd>\n<dt id=\"does%20refreshing%20the%20login%20page%20after%20a%20failed%20attempt%20count%20as%20another%20attempt%3F\"><h3>Does refreshing the login page after a failed attempt count as another attempt?<\/h3><\/dt>\n<dd><p>No. The plugin uses a one-time token system tied to each login form submission. Refreshing the page or hitting the back button after a failed attempt does not create a new token and therefore does not count as another attempt.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20work%20with%20woocommerce%20or%20other%20login%20forms%3F\"><h3>Does this plugin work with WooCommerce or other login forms?<\/h3><\/dt>\n<dd><p>The brute-force protection is applied to the standard WordPress login form at wp-login.php. Custom login forms provided by WooCommerce or membership plugins that bypass wp-login.php are not currently covered.<\/p><\/dd>\n<dt id=\"will%20enabling%20all%20hardening%20features%20break%20my%20site%3F\"><h3>Will enabling all hardening features break my site?<\/h3><\/dt>\n<dd><p>Each feature is designed to be safe to enable on a standard WordPress installation. However, a few features have functional side effects you should be aware of: blocking author archives will affect sites that use author archive pages for editorial or portfolio purposes; restricting the REST users endpoint may affect some third-party integrations that query user data publicly. Review each feature description before enabling it.<\/p><\/dd>\n<dt id=\"does%20the%20code%20preview%20tab%20run%20any%20custom%20code%3F\"><h3>Does the Code Preview tab run any custom code?<\/h3><\/dt>\n<dd><p>No. It only displays reference snippets based on your current hardening settings. The preview itself does not execute any user-provided code.<\/p><\/dd>\n\n<\/dl>","raw_excerpt":"All-in-one WordPress security with brute-force protection, hardening controls, and a clear failed login audit log.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/zgh.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/288362","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zgh.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/zgh.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/zgh.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=288362"}],"author":[{"embeddable":true,"href":"https:\/\/zgh.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/rashidsharafat"}],"wp:attachment":[{"href":"https:\/\/zgh.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=288362"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/zgh.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=288362"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/zgh.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=288362"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/zgh.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=288362"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/zgh.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=288362"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/zgh.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=288362"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}