{"id":391010,"date":"2026-10-25T13:21:22","date_gmt":"2026-10-25T13:21:22","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/mamori\/"},"modified":"2026-10-25T13:20:47","modified_gmt":"2026-10-25T13:20:47","slug":"kumitate-hoshu","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/kumitate-hoshu\/","author":21110439,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.2.0","stable_tag":"0.2.0","tested":"7.1.4","requires":"6.6","requires_php":"7.4","requires_plugins":null,"header_name":"KUMITATE HOSHU","header_author":"MOTOKI","header_description":"Security and maintenance with sensible defaults: login protection, two-factor login, hardening, security headers, a settings check, file integrity and vulnerability checks, and backups that All-in-One WP Migration can import.","assets_banners_color":"","last_updated":"2026-10-25 13:20:47","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/kumitate-theme.com\/kumitate-hoshu\/","header_author_uri":"https:\/\/motoki-design.co.jp\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":66,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.2.0":{"tag":"0.2.0","author":"motok1","date":"2026-10-25 13:20:47","revision":3764638}},"upgrade_notice":[],"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.2.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[151,31093,602,600,9217],"plugin_category":[38,54,59],"plugin_contributors":[245295],"plugin_business_model":[],"class_list":["post-391010","plugin","type-plugin","status-publish","hentry","plugin_tags-backup","plugin_tags-hardening","plugin_tags-login","plugin_tags-security","plugin_tags-two-factor","plugin_category-authentication","plugin_category-security-and-spam-protection","plugin_category-utilities-and-tools","plugin_contributors-motok1","plugin_committers-motok1"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/kumitate-hoshu.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>KUMITATE HOSHU (\"kumitate-hoshu\" is Japanese for protection) closes the ways most WordPress sites get broken into, with as little to configure as possible. Activate it and the protections that cannot lock you out are already on. Everything else is one switch, explained in plain words.<\/p>\n\n<p><strong>Login<\/strong><\/p>\n\n<ul>\n<li>Limit login attempts: repeated failures from one address or for one user name are refused for a while, and the password is not even checked during the lock.<\/li>\n<li>Two-factor login: each user can add a time-based code from Google Authenticator, Microsoft Authenticator, Authy, 1Password or any other authenticator app, with single-use recovery codes.<\/li>\n<li>Change the login address (off by default): serve the login page at an address of your choosing and answer wp-login.php and the admin area with \"not found\" for visitors.<\/li>\n<\/ul>\n\n<p><strong>Fewer ways in<\/strong><\/p>\n\n<ul>\n<li>Hide user names: the author archive by number, the public users endpoint of the REST API, the users sitemap and login errors that confirm a name all stop giving names away.<\/li>\n<li>Close unused doors: XML-RPC and pingbacks off, the theme and plugin file editors removed, the WordPress version hidden.<\/li>\n<li>Security headers: X-Frame-Options, X-Content-Type-Options, Referrer-Policy and Permissions-Policy on every response.<\/li>\n<\/ul>\n\n<p><strong>Checks<\/strong><\/p>\n\n<ul>\n<li>Settings check: a score out of 100 and a list of what to fix and how, from debug output to a user named \"admin\", PHP files in uploads, missing secret keys and waiting updates.<\/li>\n<li>File integrity: the WordPress files on the server compared with the official list from WordPress.org, weekly and on demand; changed, missing and unexpected files are listed.<\/li>\n<li>Known vulnerabilities: installed plugins, themes and WordPress compared with a public vulnerability list, weekly and on demand.<\/li>\n<li>A log of logins, locks, backups, updates and checks, kept for 90 days and at most 20,000 entries, with addresses stored as hashes.<\/li>\n<\/ul>\n\n<p><strong>Keep<\/strong><\/p>\n\n<ul>\n<li>Backups: wp-content and the database in one .wpress file, the format All-in-One WP Migration (ServMask Inc.) imports, so a backup can also move a site elsewhere. Made by hand or every day or week, kept in a folder closed to visitors, with a chosen number of generations, and downloadable from the same screen. Restore from there too; the current state is backed up first. A .wpress from another site can be uploaded on the same screen and restored, with addresses and paths rewritten.<\/li>\n<li>Automatic updates with a backup first: once a day, waiting plugin and theme updates are installed after a backup; the front and login pages are checked, and if the site stopped answering properly the updated items are put back from that backup and you get an e-mail.<\/li>\n<\/ul>\n\n<p>Plugin Check notes a \"plugin updater\": that is the automatic-updates feature above, which installs updates from WordPress.org through the normal WordPress upgrader. The plugin never changes where updates come from.<\/p>\n\n<p>What this plugin does not do: it cannot protect the web server or operating system, stop a denial-of-service attack, or help once an attacker can already run PHP on the server. Keep WordPress, plugins and themes updated and keep backups away from the server.<\/p>\n\n<h3>External services<\/h3>\n\n<p>Nothing is downloaded or sent until you turn on \"Allow connections to WordPress.org and the vulnerability list\" under KUMITATE HOSHU &gt; Settings.<\/p>\n\n<ul>\n<li><strong>WordPress.org<\/strong> (api.wordpress.org): the file integrity check downloads the official checksum list for the installed WordPress version and locale. The request carries the version and locale. <a href=\"https:\/\/wordpress.org\/about\/privacy\/\">Privacy policy<\/a><\/li>\n<li><strong>Wordfence Intelligence<\/strong> by Defiant Inc. (www.wordfence.com): the vulnerability check downloads the public vulnerability list and compares it on your server with the installed plugin, theme and WordPress versions. No information about your site is sent; only matching entries are kept. <a href=\"https:\/\/www.wordfence.com\/wordfence-intelligence-terms-and-conditions\/\">Terms<\/a> \u00b7 <a href=\"https:\/\/www.defiant.com\/privacy-policy\/\">Privacy policy<\/a><\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to \/wp-content\/plugins\/ or install it from the Plugins screen.<\/li>\n<li>Activate it. Login limits, user name hiding, hardening, headers and the settings check are on at once.<\/li>\n<li>Open KUMITATE HOSHU in the admin menu, read the settings check, and turn on the external connection if you want the file and vulnerability checks.<\/li>\n<li>On your profile, set up two-factor login and keep the recovery codes somewhere safe.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"i%20changed%20the%20login%20address%20and%20forgot%20it\"><h3>I changed the login address and forgot it<\/h3><\/dt>\n<dd><p>Add <code>define( 'KUMITATE_HOSHU_LOGIN_URL_OFF', true );<\/code> to wp-config.php. The usual wp-login.php address then works again.<\/p><\/dd>\n<dt id=\"i%20lost%20my%20authenticator%20device\"><h3>I lost my authenticator device<\/h3><\/dt>\n<dd><p>Log in with one of your recovery codes, then on your profile turn two-factor login off and set it up again. An administrator can also turn it off for another user from that user's profile.<\/p><\/dd>\n<dt id=\"does%20two-factor%20login%20cover%20every%20way%20in%3F\"><h3>Does two-factor login cover every way in?<\/h3><\/dt>\n<dd><p>It covers the login form, including custom login forms that use wp_signon(). XML-RPC and application passwords authenticate without the form and are not asked for a code, so keep \"Close unused doors\" on (it turns XML-RPC off) and give application passwords only to users who need them.<\/p><\/dd>\n<dt id=\"jetpack%20or%20the%20mobile%20app%20stopped%20working\"><h3>Jetpack or the mobile app stopped working<\/h3><\/dt>\n<dd><p>They use XML-RPC. Turn off \"Close unused doors\" under KUMITATE HOSHU &gt; Settings, or ask on the support forum for a finer switch.<\/p><\/dd>\n<dt id=\"can%20all-in-one%20wp%20migration%20really%20read%20these%20backups%3F\"><h3>Can All-in-One WP Migration really read these backups?<\/h3><\/dt>\n<dd><p>The file layout and database format follow that plugin's own archiver; backups made here were imported with its version 7.112 during development, with plugins and the theme re-activated by it afterwards. Save the permalink settings once after an import. Its free version limits the size of an import uploaded through the browser; large sites are restored with KUMITATE HOSHU itself, or imported with that plugin's paid extension.<\/p><\/dd>\n<dt id=\"where%20are%20backups%20stored%2C%20and%20are%20they%20safe%3F\"><h3>Where are backups stored, and are they safe?<\/h3><\/dt>\n<dd><p>Under wp-content\/uploads\/kumitate-hoshu\/backups, with a random part in each file name and an .htaccess that denies web access on Apache. On nginx the folder is not denied automatically: add a location rule for \/wp-content\/uploads\/kumitate-hoshu\/ that returns 403. Download backups regularly and keep them away from the server; they contain your database, so treat them as confidential.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20a%20caching%20plugin%20or%20a%20cdn%3F\"><h3>Does it work with a caching plugin or a CDN?<\/h3><\/dt>\n<dd><p>Yes. The protections run on login and admin requests, which are not cached. Security headers on cached pages are sent only when the cache was filled with the plugin active.<\/p><\/dd>\n<dt id=\"what%20about%20the%20server%20behind%20a%20proxy%20or%20load%20balancer%3F\"><h3>What about the server behind a proxy or load balancer?<\/h3><\/dt>\n<dd><p>Login limits use the address the web server reports. If your host puts a proxy in front and every visitor appears to share one address, add a filter on <code>kumitate_hoshu_client_ip<\/code> that returns the real address from the header your host documents, and only that header.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>Backups in .wpress form, by hand or on a schedule, with restore and a pre-restore safety backup.<\/li>\n<li>Automatic plugin and theme updates with a backup first, a health check and rollback from the backup.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>First release: login limits, two-factor login, login address change, user name hiding, hardening, security headers, settings check, file integrity check, vulnerability check, log.<\/li>\n<\/ul>","raw_excerpt":"Security and upkeep with sensible defaults: login limits, two-factor login, hardening, plain-words checks, backups and updates with a backup first.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/391010","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=391010"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/motok1"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=391010"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=391010"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=391010"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=391010"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=391010"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=391010"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}