{"id":343568,"date":"2026-07-31T06:40:48","date_gmt":"2026-07-31T06:40:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/shieldcore\/"},"modified":"2026-08-16T10:18:51","modified_gmt":"2026-08-16T10:18:51","slug":"qevix-shield","status":"publish","type":"plugin","link":"https:\/\/bal.wordpress.org\/plugins\/qevix-shield\/","author":23531506,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.4","stable_tag":"1.1.4","tested":"7.1","requires":"6.5","requires_php":"7.2","requires_plugins":null,"header_name":"Qevix Shield","header_author":"QevixLabs","header_description":"WordPress security: login protection, brute force lockouts, 2FA, reCAPTCHA, malware scanning, firewall and audit log. All off until you turn it on.","assets_banners_color":"395d8e","last_updated":"2026-08-16 10:18:51","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/qevixlabs.com\/products\/qevix-shield","header_author_uri":"https:\/\/profiles.wordpress.org\/qevixlabs","rating":5,"author_block_rating":0,"active_installs":0,"downloads":264,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"qevixlabs","date":"2026-07-31 07:23:39"},"1.1.0":{"tag":"1.1.0","author":"qevixlabs","date":"2026-08-03 18:19:00"},"1.1.1":{"tag":"1.1.1","author":"qevixlabs","date":"2026-08-04 05:37:05"},"1.1.2":{"tag":"1.1.2","author":"qevixlabs","date":"2026-08-04 06:57:03"},"1.1.3":{"tag":"1.1.3","author":"qevixlabs","date":"2026-08-09 08:07:47"},"1.1.4":{"tag":"1.1.4","author":"qevixlabs","date":"2026-08-16 10:18:51"}},"upgrade_notice":{"1.1.4":"<p>Compatibility release for WordPress 7.1. No settings, defaults, or protection behavior changed.<\/p>","1.1.3":"<p>Improved readability and accuracy. Activity Log events now use simple English, and several screens were corrected when they showed a protection as active when it could not actually run. No settings changed.<\/p>","1.1.2":"<p>Fixed the Enable 2FA switch. When it is off, enrolled users are no longer asked for a 2FA code. Existing enrolments are kept.<\/p>","1.1.1":"<p>Now supports WordPress 6.5 and PHP 7.2, allowing older WordPress sites to install the plugin. No settings or protection behavior changed.<\/p>","1.1.0":"<p>Redesigned the admin screens. Settings, names, and saved values were kept unchanged; only the way they are displayed was changed.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3633311,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3633311,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3630599,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3630599,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.1.0","1.1.1","1.1.2","1.1.3","1.1.4"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3633311,"resolution":"1","location":"assets","locale":"","width":1367,"height":874},"screenshot-10.jpg":{"filename":"screenshot-10.jpg","revision":3633311,"resolution":"10","location":"assets","locale":"","width":537,"height":575},"screenshot-11.jpg":{"filename":"screenshot-11.jpg","revision":3633311,"resolution":"11","location":"assets","locale":"","width":1370,"height":686},"screenshot-12.jpg":{"filename":"screenshot-12.jpg","revision":3633311,"resolution":"12","location":"assets","locale":"","width":1370,"height":686},"screenshot-13.jpg":{"filename":"screenshot-13.jpg","revision":3633311,"resolution":"13","location":"assets","locale":"","width":1369,"height":621},"screenshot-14.jpg":{"filename":"screenshot-14.jpg","revision":3633311,"resolution":"14","location":"assets","locale":"","width":1369,"height":629},"screenshot-15.jpg":{"filename":"screenshot-15.jpg","revision":3633311,"resolution":"15","location":"assets","locale":"","width":1352,"height":934},"screenshot-16.jpg":{"filename":"screenshot-16.jpg","revision":3633311,"resolution":"16","location":"assets","locale":"","width":1352,"height":762},"screenshot-17.jpg":{"filename":"screenshot-17.jpg","revision":3633311,"resolution":"17","location":"assets","locale":"","width":1367,"height":790},"screenshot-18.jpg":{"filename":"screenshot-18.jpg","revision":3633311,"resolution":"18","location":"assets","locale":"","width":1348,"height":914},"screenshot-19.jpg":{"filename":"screenshot-19.jpg","revision":3633311,"resolution":"19","location":"assets","locale":"","width":1348,"height":866},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3633311,"resolution":"2","location":"assets","locale":"","width":1359,"height":905},"screenshot-20.jpg":{"filename":"screenshot-20.jpg","revision":3633311,"resolution":"20","location":"assets","locale":"","width":1356,"height":770},"screenshot-21.jpg":{"filename":"screenshot-21.jpg","revision":3633311,"resolution":"21","location":"assets","locale":"","width":1361,"height":923},"screenshot-22.jpg":{"filename":"screenshot-22.jpg","revision":3633311,"resolution":"22","location":"assets","locale":"","width":1354,"height":902},"screenshot-23.jpg":{"filename":"screenshot-23.jpg","revision":3633311,"resolution":"23","location":"assets","locale":"","width":1367,"height":891},"screenshot-24.jpg":{"filename":"screenshot-24.jpg","revision":3633311,"resolution":"24","location":"assets","locale":"","width":592,"height":386},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3633311,"resolution":"3","location":"assets","locale":"","width":1370,"height":935},"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3633311,"resolution":"4","location":"assets","locale":"","width":1367,"height":671},"screenshot-5.jpg":{"filename":"screenshot-5.jpg","revision":3633311,"resolution":"5","location":"assets","locale":"","width":1493,"height":388},"screenshot-6.jpg":{"filename":"screenshot-6.jpg","revision":3633311,"resolution":"6","location":"assets","locale":"","width":1219,"height":882},"screenshot-7.jpg":{"filename":"screenshot-7.jpg","revision":3633311,"resolution":"7","location":"assets","locale":"","width":1372,"height":709},"screenshot-8.jpg":{"filename":"screenshot-8.jpg","revision":3633311,"resolution":"8","location":"assets","locale":"","width":1664,"height":1422},"screenshot-9.jpg":{"filename":"screenshot-9.jpg","revision":3633311,"resolution":"9","location":"assets","locale":"","width":1220,"height":849}},"screenshots":{"1":"Dashboard showing login attempts, IP lockouts, malware status, password status, threats blocked in the last 24 hours, and recent activity.","2":"Activity Log showing logins, admin actions, and blocked requests. The log can be searched, filtered, and exported to CSV.","3":"Login Protection for limiting failed logins, temporarily blocking IPs, and allowing trusted IPs or CIDR ranges.","4":"Hide Login for changing the default <code>\/wp-login.php<\/code> URL and choosing what blocked visitors see.","5":"When the login is hidden, logged-out visitors who open <code>\/wp-admin\/<\/code> receive a 404 page instead of a login form.","6":"Two-Factor Authentication setup using a QR code and authenticator app.","7":"Ten one-time recovery codes that can be downloaded and stored safely.","8":"Login challenge requiring the authenticator code or a recovery code after the password.","9":"reCAPTCHA settings with v2 checkbox or invisible v3 scoring, including the required key test.","10":"reCAPTCHA checkbox displayed on the WordPress login form.","11":"Password Security settings for minimum length, character requirements, and password restrictions.","12":"Password expiry, password reuse prevention, and forced password reset settings.","13":"Malware Scanner for checking WordPress core, plugins, themes, and uploads.","14":"Malware scan results showing the severity, file location, and reason for each finding.","15":"File Security for blocking access to sensitive files, backups, database dumps, and custom file patterns.","16":"Security settings for hiding version information and blocking common SQL injection, XSS, traversal, and other attack patterns.","17":"XML-RPC Protection for disabling XML-RPC methods or pingbacks and recording requests.","18":"Sessions showing signed-in devices with browser, IP address, and last activity, with the option to end sessions.","19":"A list of active user sessions so unfamiliar sessions can be found and ended.","20":"Email notification settings for important security events.","21":"Optional SMS or WhatsApp alerts through Twilio or the WhatsApp Cloud API.","22":"Optional Slack, Discord, or webhook alerts.","23":"General settings for roles, activity-log retention, and uninstall behavior.","24":"A diagnostic report that removes secrets before being sent to the support team."}},"plugin_section":[262246],"plugin_tags":[1174,55021,595,600,1909],"plugin_category":[38,54],"plugin_contributors":[273973],"plugin_business_model":[],"class_list":["post-343568","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-firewall","plugin_tags-malware-scanner","plugin_tags-recaptcha","plugin_tags-security","plugin_tags-two-factor-authentication","plugin_category-authentication","plugin_category-security-and-spam-protection","plugin_contributors-qevixlabs","plugin_committers-qevixlabs"],"banners":{"banner":"https:\/\/ps.w.org\/qevix-shield\/assets\/banner-772x250.png?rev=3630599","banner_2x":"https:\/\/ps.w.org\/qevix-shield\/assets\/banner-1544x500.png?rev=3630599","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/qevix-shield\/assets\/icon-128x128.png?rev=3633311","icon_2x":"https:\/\/ps.w.org\/qevix-shield\/assets\/icon-256x256.png?rev=3633311","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/qevix-shield\/assets\/screenshot-1.jpg?rev=3633311","caption":"Dashboard showing login attempts, IP lockouts, malware status, password status, threats blocked in the last 24 hours, and recent activity."},{"src":"https:\/\/ps.w.org\/qevix-shield\/assets\/screenshot-2.jpg?rev=3633311","caption":"Activity Log showing logins, admin actions, and blocked requests. The log can be searched, filtered, and exported to CSV."},{"src":"https:\/\/ps.w.org\/qevix-shield\/assets\/screenshot-3.jpg?rev=3633311","caption":"Login Protection for limiting failed logins, temporarily blocking IPs, and allowing trusted IPs or CIDR ranges."},{"src":"https:\/\/ps.w.org\/qevix-shield\/assets\/screenshot-4.jpg?rev=3633311","caption":"Hide Login for changing the default <code>\/wp-login.php<\/code> URL and choosing what blocked visitors see."},{"src":"https:\/\/ps.w.org\/qevix-shield\/assets\/screenshot-5.jpg?rev=3633311","caption":"When the login is hidden, logged-out visitors who open <code>\/wp-admin\/<\/code> receive a 404 page instead of a login form."},{"src":"https:\/\/ps.w.org\/qevix-shield\/assets\/screenshot-6.jpg?rev=3633311","caption":"Two-Factor Authentication setup using a QR code and authenticator app."},{"src":"https:\/\/ps.w.org\/qevix-shield\/assets\/screenshot-7.jpg?rev=3633311","caption":"Ten one-time recovery codes that can be downloaded and stored safely."},{"src":"https:\/\/ps.w.org\/qevix-shield\/assets\/screenshot-8.jpg?rev=3633311","caption":"Login challenge requiring the authenticator code or a recovery code after the password."},{"src":"https:\/\/ps.w.org\/qevix-shield\/assets\/screenshot-9.jpg?rev=3633311","caption":"reCAPTCHA settings with v2 checkbox or invisible v3 scoring, including the required key test."},{"src":"https:\/\/ps.w.org\/qevix-shield\/assets\/screenshot-10.jpg?rev=3633311","caption":"reCAPTCHA checkbox displayed on the WordPress login form."},{"src":"https:\/\/ps.w.org\/qevix-shield\/assets\/screenshot-11.jpg?rev=3633311","caption":"Password Security settings for minimum length, character requirements, and password restrictions."},{"src":"https:\/\/ps.w.org\/qevix-shield\/assets\/screenshot-12.jpg?rev=3633311","caption":"Password expiry, password reuse prevention, and forced password reset settings."},{"src":"https:\/\/ps.w.org\/qevix-shield\/assets\/screenshot-13.jpg?rev=3633311","caption":"Malware Scanner for checking WordPress core, plugins, themes, and uploads."},{"src":"https:\/\/ps.w.org\/qevix-shield\/assets\/screenshot-14.jpg?rev=3633311","caption":"Malware scan results showing the severity, file location, and reason for each finding."},{"src":"https:\/\/ps.w.org\/qevix-shield\/assets\/screenshot-15.jpg?rev=3633311","caption":"File Security for blocking access to sensitive files, backups, database dumps, and custom file patterns."},{"src":"https:\/\/ps.w.org\/qevix-shield\/assets\/screenshot-16.jpg?rev=3633311","caption":"Security settings for hiding version information and blocking common SQL injection, XSS, traversal, and other attack patterns."},{"src":"https:\/\/ps.w.org\/qevix-shield\/assets\/screenshot-17.jpg?rev=3633311","caption":"XML-RPC Protection for disabling XML-RPC methods or pingbacks and recording requests."},{"src":"https:\/\/ps.w.org\/qevix-shield\/assets\/screenshot-18.jpg?rev=3633311","caption":"Sessions showing signed-in devices with browser, IP address, and last activity, with the option to end sessions."},{"src":"https:\/\/ps.w.org\/qevix-shield\/assets\/screenshot-19.jpg?rev=3633311","caption":"A list of active user sessions so unfamiliar sessions can be found and ended."},{"src":"https:\/\/ps.w.org\/qevix-shield\/assets\/screenshot-20.jpg?rev=3633311","caption":"Email notification settings for important security events."},{"src":"https:\/\/ps.w.org\/qevix-shield\/assets\/screenshot-21.jpg?rev=3633311","caption":"Optional SMS or WhatsApp alerts through Twilio or the WhatsApp Cloud API."},{"src":"https:\/\/ps.w.org\/qevix-shield\/assets\/screenshot-22.jpg?rev=3633311","caption":"Optional Slack, Discord, or webhook alerts."},{"src":"https:\/\/ps.w.org\/qevix-shield\/assets\/screenshot-23.jpg?rev=3633311","caption":"General settings for roles, activity-log retention, and uninstall behavior."},{"src":"https:\/\/ps.w.org\/qevix-shield\/assets\/screenshot-24.jpg?rev=3633311","caption":"A diagnostic report that removes secrets before being sent to the support team."}],"raw_content":"<!--section=description-->\n<p>Qevix Shield protects the parts of a WordPress site that attackers commonly target first: the login page, XML-RPC, files, and URLs that can reveal information about your site.<\/p>\n\n<p>It can help stop brute-force attacks, add two-factor authentication and reCAPTCHA, scan files for malware, protect sensitive files, and record blocked activity in a searchable log. Important events can also be sent to administrators by email.<\/p>\n\n<p>Qevix Shield is safe to activate. Activation does not change how your site works. All security protections are off until you enable them, so you can turn them on one at a time and check the result. The activity log starts automatically, but it only records activity and does not change your site.<\/p>\n\n<h4>Why Qevix Shield<\/h4>\n\n<ul>\n<li><strong>Safe to activate.<\/strong> All security protections are off by default. Turn them on one at a time so you can see exactly what each protection does.<\/li>\n<li><strong>Easy recovery.<\/strong> A safe mode in <code>wp-config.php<\/code> can temporarily disable Qevix Shield if you ever lock yourself out. reCAPTCHA keys must pass a test before reCAPTCHA can be enabled. 2FA includes recovery codes and an admin reset. Login lockouts are temporary.<\/li>\n<li><strong>One plugin for your security needs.<\/strong> Includes Hide Login, brute-force protection, 2FA, reCAPTCHA, password rules, XML-RPC protection, malware scanning, file and server protection, firewall, and activity logging.<\/li>\n<li><strong>See what is happening.<\/strong> Logins, blocked requests, and admin actions appear in a searchable activity log. You can export the log to CSV. Important events can be grouped into one email instead of sending many separate emails.<\/li>\n<li><strong>Designed to be lightweight.<\/strong> With all protections enabled, response times are intended to remain close to the site without the plugin. Visitors do not have to wait for an external security service.<\/li>\n<li><strong>Works with other plugins.<\/strong> Qevix Shield does not modify or replace other plugins' code. WooCommerce, membership plugins, and front-end login pages can continue to work, including when Hide Login is enabled.<\/li>\n<li><strong>Free features.<\/strong> All features listed above are included for free. No account, license key, trial, or expiring feature is required. The optional Pro add-on adds additional features; it does not unlock features that are already part of the free plugin.<\/li>\n<\/ul>\n\n<h4>Login Protection<\/h4>\n\n<ul>\n<li><strong>Hide Login:<\/strong> Move the WordPress login page from <code>\/wp-login.php<\/code> to a custom login URL. This is off by default.<\/li>\n<li>Choose what blocked visitors see: a 404 page, your homepage, or a custom redirect.<\/li>\n<li>A honeypot field helps block simple bots without affecting normal visitors.<\/li>\n<li>Limit failed login attempts and temporarily block an IP address after too many failed attempts.<\/li>\n<li>Add trusted IP addresses or CIDR ranges so they are not rate-limited or blocked.<\/li>\n<\/ul>\n\n<h4>Two-Factor Authentication (2FA)<\/h4>\n\n<ul>\n<li>Use one-time codes from popular authenticator apps such as Google Authenticator, Authy, 1Password, and similar apps.<\/li>\n<li>Set up 2FA separately for each user by scanning a QR code and confirming a code.<\/li>\n<li>Get recovery codes when setting up 2FA. You can download them and use them if you lose your phone. An administrator can also reset 2FA.<\/li>\n<li>Require 2FA for the user roles you choose. Users who are required to use 2FA will be guided through setup before they can continue.<\/li>\n<li>Protect XML-RPC logins for 2FA users by requiring the 2FA code or blocking XML-RPC password logins. Application passwords are not affected.<\/li>\n<\/ul>\n\n<h4>reCAPTCHA<\/h4>\n\n<ul>\n<li>Add Google reCAPTCHA to login, registration, and lost-password forms.<\/li>\n<li>Choose between reCAPTCHA v2 (the \"I'm not a robot\" checkbox) and invisible reCAPTCHA v3.<\/li>\n<li>Protect WooCommerce My Account and checkout forms too.<\/li>\n<li>Developers can add the same protection to other plugin forms using a hook.<\/li>\n<li>reCAPTCHA v3 lets you set a score threshold. You can also enable an email fallback so a genuine user who gets a low score can receive a one-time sign-in link.<\/li>\n<li>Test your reCAPTCHA keys before enabling the protection. This helps prevent incorrect keys from breaking login.<\/li>\n<li>If Google is temporarily unavailable, reCAPTCHA fails open so an outage does not lock users out.<\/li>\n<\/ul>\n\n<h4>Password Security<\/h4>\n\n<ul>\n<li>Set a minimum password length.<\/li>\n<li>Require uppercase letters, lowercase letters, numbers, and symbols.<\/li>\n<li>Prevent users from using their username or email address as their password.<\/li>\n<\/ul>\n\n<h4>XML-RPC Protection<\/h4>\n\n<ul>\n<li>Disable all XML-RPC methods or disable pingbacks only.<\/li>\n<li>Record every XML-RPC request, including the method and whether it was allowed or blocked.<\/li>\n<\/ul>\n\n<h4>Malware Scanner<\/h4>\n\n<ul>\n<li>Scan WordPress core files, plugins, themes, and uploads. Choose which areas to scan.<\/li>\n<li>Compare WordPress core files and plugins from WordPress.org with their official checksums to detect modified files.<\/li>\n<li>Use a malware pattern scanner to check files that cannot be verified with checksums, including themes, uploads, premium plugins, and modified files.<\/li>\n<li>The scanner only reports what it finds. It does not automatically change or delete files.<\/li>\n<\/ul>\n\n<h4>File &amp; Server Security<\/h4>\n\n<ul>\n<li>Block direct access to sensitive files such as <code>.env<\/code>, <code>.git<\/code>, <code>wp-config.php<\/code>, and other protected files.<\/li>\n<li>Block access to backup files and database dumps such as <code>.sql<\/code>, <code>.bak<\/code>, <code>.tar.gz<\/code>, and <code>.wpress<\/code>.<\/li>\n<li>Add your own filenames or <code>*.extension<\/code> patterns to block.<\/li>\n<li>Disable directory listing and PHP execution inside the uploads folder.<\/li>\n<li>Qevix Shield can add the required Apache <code>.htaccess<\/code> rules and show the equivalent nginx rules for manual setup.<\/li>\n<li>Hide the WordPress version, REST API discovery links, and identifying server headers.<\/li>\n<li>Block author and user enumeration.<\/li>\n<li>A lightweight firewall helps block common SQL injection, XSS, file inclusion, and command injection attempts, as well as known scanner user agents.<\/li>\n<\/ul>\n\n<h4>Sessions, Activity Log &amp; Dashboard<\/h4>\n\n<ul>\n<li>Users can see and end their own active login sessions.<\/li>\n<li>Resetting a password logs out the other sessions for that account.<\/li>\n<li>The activity log records logins, admin actions, and blocked requests, including who, what, when, and where.<\/li>\n<li>Search, filter, and export the activity log to CSV.<\/li>\n<li>Choose how long activity records are kept.<\/li>\n<li>Important events can be emailed to administrators as grouped summaries.<\/li>\n<li>A WordPress dashboard widget shows threats blocked during the last 24 hours and suggests the next protection to enable.<\/li>\n<li>Give selected WordPress roles permission to manage Qevix Shield or view it in read-only mode without giving them full administrator settings access.<\/li>\n<\/ul>\n\n<h4>Qevix Shield Pro<\/h4>\n\n<p>Qevix Shield is complete on its own, and all features listed above are free. The optional Pro add-on, sold at qevixlabs.com, adds additional features for what happens after a threat is detected.<\/p>\n\n<ul>\n<li><strong>Malware cleanup and deeper scanning<\/strong> \u2014 quarantine or delete infected files, dismiss reviewed results, use additional web-shell and backdoor signatures, detect suspicious cron jobs and administrator accounts, scan the database for injected content, and run scheduled daily or weekly scans.<\/li>\n<li><strong>Leaked-password protection<\/strong> \u2014 check passwords against the Have I Been Pwned database in a privacy-preserving way, block common passwords, set password expiry, prevent password reuse, and force password resets.<\/li>\n<li><strong>Advanced login blocking<\/strong> \u2014 permanently block IP addresses, filter user agents, and automatically block repeat offenders.<\/li>\n<li><strong>More alert options<\/strong> \u2014 send grouped alerts through SMS, WhatsApp, Slack, Discord, or webhooks.<\/li>\n<li><strong>Advanced sessions and access control<\/strong> \u2014 view users' sessions from an admin screen, enforce idle timeouts, and use WP-CLI commands.<\/li>\n<li><strong>Additional 2FA and XML-RPC options<\/strong> \u2014 trusted devices, emailed backup codes, and more detailed XML-RPC controls.<\/li>\n<\/ul>\n\n<h4>Learn More<\/h4>\n\n<p>Every setting has its own screen with a \"?\" tip explaining the option.<\/p>\n\n<p>For a full walkthrough, including screenshots, feature comparisons, and common questions, see the plugin's home page: <a href=\"https:\/\/qevixlabs.com\/products\/qevix-shield\/\">Qevix Shield on qevixlabs.com<\/a>.<\/p>\n\n<h3>External services<\/h3>\n\n<p>Qevix Shield does not contact external services by default. Two optional features use external services only after you configure them.<\/p>\n\n<p><strong>Google reCAPTCHA<\/strong> \u2014 Used only when you enable reCAPTCHA and enter your own Google keys. The protected login page loads Google's reCAPTCHA script. Each protected attempt sends the reCAPTCHA token, your secret key, and the visitor's IP address to Google's verification service (<code>https:\/\/www.google.com\/recaptcha\/api\/siteverify<\/code>).<\/p>\n\n<p>The \"Test keys\" button also contacts Google.<\/p>\n\n<p>Provided by Google: <a href=\"https:\/\/policies.google.com\/terms\">terms<\/a>, <a href=\"https:\/\/policies.google.com\/privacy\">privacy policy<\/a>.<\/p>\n\n<p><strong>WordPress.org checksums API<\/strong> \u2014 Used when you run a malware scan. Qevix Shield gets official checksums to identify genuine files and modified files.<\/p>\n\n<p>For WordPress core, it uses WordPress's <code>get_core_checksums()<\/code> function, which contacts <code>api.wordpress.org<\/code> and sends your WordPress version and locale.<\/p>\n\n<p>For plugins, it gets public checksum information from WordPress.org. Only the plugin slug and version are included in the request. Results are cached for seven days. Plugins without a checksum manifest, such as premium or custom plugins, are scanned normally.<\/p>\n\n<p>Provided by WordPress.org: <a href=\"https:\/\/wordpress.org\/about\/privacy\/\">privacy policy<\/a>.<\/p>\n\n<p>Built-in email alerts use your site's own email configuration. No third-party email service is required.<\/p>\n\n<p>The other alert channels, such as Slack, Discord, webhooks, SMS, and WhatsApp, and the Have I Been Pwned password check are part of the separate Qevix Shield Pro add-on.<\/p>\n\n<p>Audit logs, lockout records, 2FA secrets, and settings remain in your site's own database.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>qevix-shield<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install Qevix Shield from the WordPress Plugins screen.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Go to <strong>Qevix Shield \u2192 Settings<\/strong>.<\/li>\n<li>Turn on the protections you want, one at a time.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20everything%20really%20free%3F\"><h3>Is everything really free?<\/h3><\/dt>\n<dd><p>Yes. Every feature listed on this page is available after installation. There is no account, license key, trial, expiry, or locked setting.<\/p>\n\n<p>The optional Pro add-on adds separate features. It does not unlock features that are already included in the free plugin.<\/p><\/dd>\n<dt id=\"do%20i%20need%20to%20configure%20anything%20after%20activating%3F\"><h3>Do I need to configure anything after activating?<\/h3><\/dt>\n<dd><p>Only the protections you want to use.<\/p>\n\n<p>Qevix Shield does not change your site when you activate it. Turn on each protection from its settings screen when you are ready.<\/p>\n\n<p>The activity log starts recording activity immediately, but it does not change your site.<\/p><\/dd>\n<dt id=\"will%20it%20slow%20down%20my%20site%3F\"><h3>Will it slow down my site?<\/h3><\/dt>\n<dd><p>Qevix Shield is designed to be lightweight. With all protections enabled, response times are intended to stay close to the same site without the plugin.<\/p>\n\n<p>Visitors do not need to wait for an external security service.<\/p><\/dd>\n<dt id=\"will%20it%20lock%20me%20out%20of%20my%20own%20site%3F\"><h3>Will it lock me out of my own site?<\/h3><\/dt>\n<dd><p>Qevix Shield is designed to prevent this.<\/p>\n\n<p>Login rate limits and IP lockouts apply only to failed login attempts and are temporary. You can also add your IP address to the whitelist.<\/p>\n\n<p>Hide Login is off by default. If you enable it, save or bookmark your new login URL.<\/p>\n\n<p>If you do get locked out, you can use the recovery method below.<\/p><\/dd>\n<dt id=\"i%27ve%20locked%20myself%20out.%20how%20do%20i%20recover%3F\"><h3>I've locked myself out. How do I recover?<\/h3><\/dt>\n<dd><p>Add this line to <code>wp-config.php<\/code>:<\/p>\n\n<pre><code>define( 'QEVIX_SHIELD_SAFE_MODE', true );\n<\/code><\/pre>\n\n<p>This temporarily disables Qevix Shield protections without changing your saved settings. You can then log in, fix the problem, and remove the line.<\/p>\n\n<p>This works even when you cannot access the WordPress dashboard because <code>wp-config.php<\/code> loads before the plugin.<\/p>\n\n<p>One exception: server rules already added to <code>.htaccess<\/code> or nginx are enforced by the web server. If necessary, remove or disable those rules manually.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20woocommerce%20and%20plugins%20that%20have%20their%20own%20login%20pages%3F\"><h3>Does it work with WooCommerce and plugins that have their own login pages?<\/h3><\/dt>\n<dd><p>Yes. WooCommerce, membership plugins, LMS plugins, and page-builder login widgets can continue to use their own login pages.<\/p>\n\n<p>Hide Login only changes the standard WordPress login URL, so these separate login pages can continue to work.<\/p><\/dd>\n<dt id=\"i%20use%20the%20pro%20add-on.%20do%20the%20versions%20need%20to%20match%3F\"><h3>I use the Pro add-on. Do the versions need to match?<\/h3><\/dt>\n<dd><p>No. The free plugin and Pro add-on have separate version numbers.<\/p>\n\n<p>They are released as a pair, but their version numbers may be different. Keeping both updated is recommended.<\/p>\n\n<p>If the versions become too different, Pro will show a notice telling you which one needs to be updated.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.4<\/h4>\n\n<ul>\n<li>Tested with WordPress 7.1. No settings, defaults, or protection behavior changed.<\/li>\n<li>Confirmed compatibility with WordPress 7.1 changes that could affect plugins. Qevix Shield does not modify the editor, image processing, toolbar, or jQuery.<\/li>\n<li>Confirmed that the new WordPress Abilities API REST routes follow the same REST API authentication rules.<\/li>\n<li>Rewrote this listing in plainer English, and documented the WordPress.org checksums API under External services.<\/li>\n<li>No settings were added, removed, renamed, or changed.<\/li>\n<\/ul>\n\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>The Activity Log now uses simple English names such as \"Signed in\", \"Idle session ended\", and \"Sensitive file blocked \u2014 .env\".<\/li>\n<li>Severity and status are displayed consistently across the plugin.<\/li>\n<li>Fixed dashboard recommendations that could appear before the related protection was actually active.<\/li>\n<li>Fixed the Password Policy status showing \"Strong\" when the password protection was disabled.<\/li>\n<li>Added clear limits to several numeric settings so invalid values are caught while entering them.<\/li>\n<li>Disabled settings that cannot work while their main protection is turned off.<\/li>\n<li>Fixed the Login Protection status so it no longer says \"Enforcing\" when no login protection feature is active.<\/li>\n<li>Updated the rate-limit example to use the values currently configured by the site owner.<\/li>\n<li>Empty values in activity and session tables now show an em dash instead of a blank space.<\/li>\n<li>Fixed repeated HTML IDs on Malware Scanner and 2FA forms.<\/li>\n<li>No settings were added, removed, renamed, or changed.<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Fixed the Enable 2FA switch so turning it off completely disables 2FA enforcement.<\/li>\n<li>Existing 2FA enrolments are kept, so turning 2FA back on restores them without requiring users to set it up again.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Now supports WordPress 6.5 and PHP 7.2. No other behavior changed.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Redesigned the WordPress admin screens.<\/li>\n<li>Replaced plain checkboxes with switches for on\/off settings.<\/li>\n<li>Added status indicators showing the current state of each protection.<\/li>\n<li>Settings that cannot work because another protection is off are now disabled until they can be used.<\/li>\n<li>Fixed the reCAPTCHA key test so it remains available when reCAPTCHA is disabled.<\/li>\n<li>Fixed the reCAPTCHA v2 key test so it waits for Google's script to load before showing the checkbox.<\/li>\n<li>Moved notices to one consistent location on each screen.<\/li>\n<li>Improved the 2FA recovery-code section.<\/li>\n<li>Moved the Activity Log into its own screen.<\/li>\n<li>Made the Sessions list consistent across the plugin.<\/li>\n<li>Renamed the login-hiding screen to \"Hide Login\" everywhere.<\/li>\n<li>No settings or saved values were changed.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"WordPress security: login protection, 2FA, reCAPTCHA, malware scanning, firewall and an activity log. Every protection is off until you turn it on.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/343568","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=343568"}],"author":[{"embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/qevixlabs"}],"wp:attachment":[{"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=343568"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=343568"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=343568"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=343568"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=343568"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/bal.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=343568"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}