{"id":339689,"date":"2026-08-03T00:26:18","date_gmt":"2026-08-03T00:26:18","guid":{"rendered":"https:\/\/es.wordpress.org\/plugins\/open24-security\/"},"modified":"2026-08-03T00:25:45","modified_gmt":"2026-08-03T00:25:45","slug":"open24-security","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/open24-security\/","author":23531844,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.9","stable_tag":"1.0.9","tested":"7.0.2","requires":"5.5","requires_php":"7.4","requires_plugins":null,"header_name":"Open24 Security","header_author":"Open24","header_description":"Security hardening for WordPress and WooCommerce. Locks down the public REST API, protects the login, blocks user enumeration, hides version information and adds HTTP security headers.","assets_banners_color":"6d548f","last_updated":"2026-08-03 00:25:45","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/webwoocommerce.com\/plugins\/seguridad-wordpress-woocommerce\/","header_author_uri":"https:\/\/open24.com.ar","rating":0,"author_block_rating":0,"active_installs":0,"downloads":37,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.9":{"tag":"1.0.9","author":"open24","date":"2026-08-03 00:25:45"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3632190,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3632190,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3632190,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3632190,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3632190,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.9"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3632182,"resolution":"1","location":"assets","locale":"","width":879,"height":583}},"screenshots":{"1":"The settings screen. Every option is off by default and can be enabled individually, grouped by area: REST API, login, protocols, information disclosure, HTTP headers and WooCommerce."}},"plugin_section":[],"plugin_tags":[31093,602,23853,600,286],"plugin_category":[38,45,54],"plugin_contributors":[274273],"plugin_business_model":[],"class_list":["post-339689","plugin","type-plugin","status-publish","hentry","plugin_tags-hardening","plugin_tags-login","plugin_tags-rest-api","plugin_tags-security","plugin_tags-woocommerce","plugin_category-authentication","plugin_category-ecommerce","plugin_category-security-and-spam-protection","plugin_contributors-open24","plugin_committers-open24"],"banners":{"banner":"https:\/\/ps.w.org\/open24-security\/assets\/banner-772x250.png?rev=3632190","banner_2x":"https:\/\/ps.w.org\/open24-security\/assets\/banner-1544x500.png?rev=3632190","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/open24-security\/assets\/icon.svg?rev=3632190","icon":"https:\/\/ps.w.org\/open24-security\/assets\/icon.svg?rev=3632190","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/open24-security\/assets\/screenshot-1.png?rev=3632182","caption":"The settings screen. Every option is off by default and can be enabled individually, grouped by area: REST API, login, protocols, information disclosure, HTTP headers and WooCommerce."}],"raw_content":"<!--section=description-->\n<p>Open24 Security applies a set of well-known hardening measures to WordPress and WooCommerce sites from a single settings screen. Every option is off by default and can be switched on individually, so you decide exactly how much you want to restrict.<\/p>\n\n<p>The plugin does not phone home, does not require an account and does not send any data to external services. The only outbound request it makes is to the official WordPress.org API, and only when you explicitly rotate your security keys.<\/p>\n\n<h4>Features<\/h4>\n\n<p><strong>WordPress REST API<\/strong><\/p>\n\n<ul>\n<li>Hide the \/wp-json\/wp\/v2\/users endpoint<\/li>\n<li>Require authentication on sensitive endpoints<\/li>\n<li>Disable the \/wp-json\/ index<\/li>\n<\/ul>\n\n<p><strong>Login<\/strong><\/p>\n\n<ul>\n<li>Custom login URL (replace wp-login.php with your own slug)<\/li>\n<li>Limit login attempts per IP address<\/li>\n<li>Block common usernames such as admin or root<\/li>\n<li>Hide error hints that reveal whether a username exists<\/li>\n<\/ul>\n\n<p><strong>Protocols<\/strong><\/p>\n\n<ul>\n<li>Disable XML-RPC<\/li>\n<li>Block external access to wp-cron.php<\/li>\n<li>Block user enumeration via ?author=N<\/li>\n<\/ul>\n\n<p><strong>Information disclosure<\/strong><\/p>\n\n<ul>\n<li>Hide the WordPress version from the generator meta tag, asset query strings and RSS feeds<\/li>\n<\/ul>\n\n<p><strong>HTTP security headers<\/strong><\/p>\n\n<ul>\n<li>X-Frame-Options, X-Content-Type-Options, Referrer-Policy<\/li>\n<li>Permissions-Policy, X-XSS-Protection<\/li>\n<li>Optional HSTS<\/li>\n<\/ul>\n\n<p><strong>WooCommerce<\/strong><\/p>\n\n<ul>\n<li>Reject anonymous requests to the \/wc\/v3\/ and \/wc\/v2\/ REST routes<\/li>\n<li>Hide WooCommerce headers on the storefront<\/li>\n<\/ul>\n\n<p><strong>Tools<\/strong><\/p>\n\n<ul>\n<li>Log out all users: rotates the WordPress security keys and salts, which invalidates every session cookie and immediately signs out all logged-in users. Useful after a suspected compromise or when an employee leaves.<\/li>\n<li>Change log: records which settings were changed and when.<\/li>\n<\/ul>\n\n<p><strong>Agency signature<\/strong><\/p>\n\n<ul>\n<li>Adds an Open24 signature in the document head so the site can be identified as maintained by the agency by crawlers such as BuiltWith. This can be turned off.<\/li>\n<\/ul>\n\n<h4>About the security keys feature<\/h4>\n\n<p>Rotating the WordPress security keys requires updating the corresponding constants in wp-config.php. The plugin does this through the official WP_Filesystem API, writes to a temporary file with restrictive permissions and then moves it over the original in a single atomic operation, preserving the original file permissions. No backup copy is left anywhere on the server, and if any step fails, wp-config.php is left untouched.<\/p>\n\n<p>If wp-config.php is not writable, the feature reports it and makes no changes.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>open24-security<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install the plugin through the WordPress plugins screen.<\/li>\n<li>Activate the plugin through the Plugins menu in WordPress.<\/li>\n<li>Go to the \"Open24 Security\" menu to enable the options you need.<\/li>\n<\/ol>\n\n<p>All options are disabled by default. Enable them one at a time and test your site after each change, especially the custom login URL and the REST API restrictions.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"will%20this%20break%20my%20site%3F\"><h3>Will this break my site?<\/h3><\/dt>\n<dd><p>Every option is off by default. The ones that need the most care are the custom login URL and the REST API restrictions, because some themes and plugins rely on those endpoints. Enable them one at a time and check your site afterwards.<\/p><\/dd>\n<dt id=\"i%20enabled%20the%20custom%20login%20url%20and%20now%20i%20am%20locked%20out.%20what%20do%20i%20do%3F\"><h3>I enabled the custom login URL and now I am locked out. What do I do?<\/h3><\/dt>\n<dd><p>Rename or delete the <code>open24-security<\/code> folder in <code>\/wp-content\/plugins\/<\/code> over FTP or your hosting file manager. The plugin will be deactivated and wp-login.php will work again.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20work%20without%20woocommerce%3F\"><h3>Does this plugin work without WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. The WooCommerce options only appear when WooCommerce is active.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20send%20data%20anywhere%3F\"><h3>Does the plugin send data anywhere?<\/h3><\/dt>\n<dd><p>No. The only outbound request is to the official WordPress.org key generator API, and only when you choose to log out all users.<\/p><\/dd>\n<dt id=\"why%20does%20logging%20out%20all%20users%20modify%20wp-config.php%3F\"><h3>Why does logging out all users modify wp-config.php?<\/h3><\/dt>\n<dd><p>Because that is where WordPress stores the security keys and salts, as PHP constants. Changing them is what invalidates every session cookie. See the Description for details on how the file is written safely.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>Security keys are now written through the WP_Filesystem API instead of direct file writes.<\/li>\n<li>Removed the wp-config.php backup file that was left in the site root. It is no longer created.<\/li>\n<li>File permissions of wp-config.php are now preserved when rotating keys.<\/li>\n<li>All admin styles are now properly enqueued instead of being printed inline.<\/li>\n<li>Hardened input handling: all superglobals are unslashed and sanitized.<\/li>\n<li>All output is now escaped at the point of output.<\/li>\n<li>Internal redirects now use wp_safe_redirect().<\/li>\n<li>Readme and plugin headers translated to English.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Security hardening for WordPress and WooCommerce: lock down the REST API, protect the login, hide version info and add security headers.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/339689","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=339689"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/open24"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=339689"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=339689"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=339689"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=339689"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=339689"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=339689"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}