=== WapLab Care ===
Contributors: gripspace
Tags: security, login, two-factor authentication, firewall, auto-updates
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 0.6.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Free login protection, two-factor authentication, CAPTCHA and a simple firewall. Optionally connects to the WapLab Security Maintenance service.

== Description ==

WapLab Care adds basic security features to your site. All of these features work on their own, for free, without an account.

= Login protection =
* Limit login attempts: temporarily blocks a source after repeated failed logins.
* Change login URL: moves wp-login.php to a URL you choose.
* Unified login error message: shows the same message whether the username or the password is wrong.
* Two-factor authentication: a code by email or from an authenticator app, in addition to the password.
* CAPTCHA on login, password reset, user registration and comments.

= Limit public information =
* Prevent username disclosure through "?author=number" and the REST API.
* Restrict XML-RPC (pingbacks only, or entirely).
* Restrict the REST API for visitors who are not logged in.

= Block attacks =
* Simple WAF: blocks requests containing typical attack strings such as SQL injection.

= Notifications =
* Email when an administrator logs in.
* Email when updates are available for WordPress core, plugins or themes.

= Optional: WapLab Security Maintenance =
WapLab Security Maintenance (https://wp-coding.jp/maintenance/) is a paid monitoring service run by ibis studio k.k. If you subscribe and paste a connection key into this plugin, the WapLab server checks your site every day for tampered files and known vulnerabilities, and sends notifications and monthly reports.

Nothing is sent anywhere until you paste a connection key. The free features above do not require a connection.

= Automatic updates =
When a site administrator turns on "Manage automatic updates with this plugin" on the plugin's Auto-updates screen, this plugin uses WordPress core's own automatic update system (the auto_update_plugin, auto_update_theme and auto_update_core filters). It does not download or install anything by itself, and it never replaces the update source of any plugin or theme. You can exclude plugins and themes, and choose when major WordPress versions are applied. Items that WordPress cannot download (for example, paid plugins without a registered license) are skipped and shown as needing a manual update. This setting can only be changed in the WordPress admin; the WapLab service cannot turn it on or off or change any site settings remotely.

== External services ==

This plugin connects to the WapLab Security Maintenance service (care.wp-coding.jp), operated by ibis studio k.k., only after a site administrator pastes a connection key. Without a connection key, no data is sent.

What is sent, and when:
* When the WapLab server requests it (normally once a day): the paths and md5 hashes of the PHP, JavaScript and .htaccess files in the WordPress folder (file contents are not sent), the names and versions of WordPress core, plugins and themes, the PHP version, the site URL, and the automatic update settings.
* After WordPress applies updates: the result of each update (name, old and new version, success or error) and up to five public page URLs that the service opens from outside to check the site.
* When connecting: the names and versions of WordPress core, plugins and themes, the PHP version, the site URL, and the address of this plugin's REST endpoint (so the service can send its daily requests). Disconnecting deletes the key on your site and sends nothing.

All requests are signed with the connection key (HMAC-SHA256).

* Terms of Service: https://wp-coding.jp/maintenance/terms/
* Privacy Policy: https://wp-coding.jp/privacypolicy/

== Installation ==

1. Install the plugin from the Plugins screen, or upload the waplab-care folder to /wp-content/plugins/.
2. Activate it.
3. Open "Security Maintenance" in the admin menu and turn on the features you want.
4. (Optional) If you subscribe to WapLab Security Maintenance, paste your connection key in "Connect to WapLab".

== Frequently Asked Questions ==

= I locked myself out after changing the login URL or enabling two-factor authentication. =
Add one of the following lines to wp-config.php, log in, and fix the setting:
define( 'WAPLAB_CARE_LOGIN_URL_OFF', true );
define( 'WAPLAB_CARE_2FA_OFF', true );

= Does the plugin send data without my consent? =
No. Nothing is sent until you paste a connection key. See "External services".

= Does deleting the plugin delete my settings? =
No. Settings and the connection key are kept so that reinstalling restores them.

== Changelog ==

= 0.6.1 =
* The plugin URI now points to the plugin's own page (https://wp-coding.jp/plugin/waplab-care/).

= 0.6.0 =
* Automatic update management is now turned on and off only from the WordPress admin. The WapLab service can no longer change it remotely.
* Admin styles are now enqueued.

= 0.5.2 =
* Fixed PHP warnings ("Undefined variable $user_login") on the login page when the login URL is changed.

= 0.5.1 =
* Plugins and themes that WordPress cannot download (such as paid plugins without a license) are no longer attempted during managed automatic updates, and are reported as needing a manual update.

= 0.5.0 =
* Managed automatic updates for connected sites.

= 0.4.0 =
* Internationalization.

= 0.3.0 =
* New admin screens. Each feature can be turned on and off separately.

= 0.2.0 =
* Free security features: login protection, two-factor authentication, CAPTCHA, simple WAF and notifications.

= 0.1.0 =
* First release.
