<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>XML-RPC - Matteo Cisilino</title>
	<atom:link href="https://www.cisilino.com/es/tag/xml-rpc-es/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.cisilino.com/es/</link>
	<description>Guide su WordPress, server e sicurezza</description>
	<lastBuildDate>Fri, 30 Oct 2026 16:08:17 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.4</generator>
	<item>
		<title>Hardening WordPress: las reglas para .htaccess</title>
		<link>https://www.cisilino.com/es/2026/10/30/hardening-wordpress-reglas-htaccess/</link>
					<comments>https://www.cisilino.com/es/2026/10/30/hardening-wordpress-reglas-htaccess/#respond</comments>
		
		<dc:creator><![CDATA[matteocisilino]]></dc:creator>
		<pubDate>Fri, 30 Oct 2026 16:05:39 +0000</pubDate>
				<category><![CDATA[Manual CSDN]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[Cisilino Site Defense Network]]></category>
		<category><![CDATA[manual CSDN]]></category>
		<category><![CDATA[XML-RPC]]></category>
		<guid isPermaLink="false">https://www.cisilino.com/?p=1194</guid>

					<description><![CDATA[<p>La pestaña Hardening / IDS del plugin CSDN, regla por regla: qué bloquea, qué puede romper y por qué las rutas personalizadas deben escribirse con cuidado.</p>
<p>The post <a href="https://www.cisilino.com/es/2026/10/30/hardening-wordpress-reglas-htaccess/">Hardening WordPress: las reglas para .htaccess</a> first appeared on <a href="https://www.cisilino.com/es/">Matteo Cisilino</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>El <strong>hardening WordPress</strong> del plugin CSDN está todo en una pestaña: «Hardening / IDS». Son cinco interruptores y un campo de texto. Sirven para cerrar puertas que casi ningún sitio usa de verdad. Están todos desactivados, y los activas uno a uno.</p>
<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" src="https://www.cisilino.com/wp-content/uploads/2026/10/manuale-csdn-hardening-ids.webp" alt="Esquema de WordPress con la pestaña Hardening / IDS del plugin CSDN: hardening WordPress" width="1200" height="630"/></figure>
<h2>Dónde encuentras el hardening WordPress</h2>
<p>Abre <strong>Ajustes &gt; Cisilino Site Defense Network</strong> (punto 1 de la imagen). Luego haz clic en la pestaña <strong>Hardening / IDS</strong> (punto 2). En la pestaña encuentras tres secciones, en este orden:</p>
<ul>
<li>punto 3: bajo el título «Hardening / control de accesos (IDS)», la fila «Reglas .htaccess».</li>
<li>punto 4: «WordPress».</li>
<li>punto 5: «Rutas personalizadas para bloquear».</li>
</ul>
<p>Arriba la pestaña dice: «Reglas opcionales aplicadas a nivel de servidor (.htaccess) o de WordPress. Todas desactivadas por defecto: actívalas solo si sabes que no chocan con temas o plugins del sitio.» Al final hay un solo botón: «Guardar reglas de hardening».</p>
<h2>Para qué sirve</h2>
<p>Las reglas reducen la superficie de ataque. Tres interruptores escriben en el archivo <code>.htaccess</code>, como también el campo de rutas personalizadas. Dos interruptores son filtros de WordPress. No es un firewall y no analiza las peticiones: aquí «IDS» significa reglas de acceso a archivos y carpetas.</p>
<h2>Las reglas .htaccess (punto 3)</h2>
<h3>Bloquea la ejecución de PHP en wp-content/uploads</h3>
<p>La etiqueta completa es «Bloquea ejecución PHP en wp-content/uploads (protección contra shells subidas como \»imagen\»)». El plugin responde 403 a cada petición de un archivo con extensión <code>php</code>, <code>php3</code>, <code>php4</code>, <code>php5</code>, <code>php7</code>, <code>php8</code>, <code>php9</code>, <code>phtml</code>, <code>phps</code>, <code>phar</code> o <code>pht</code> cuya dirección contenga <code>/wp-content/uploads/</code>. Las mayúsculas no cuentan.</p>
<p>Funciona solo con Apache 2.4 (hace falta el módulo mod_authz_core: sin él, la regla no hace nada y no lo avisa). En nginx el archivo <code>.htaccess</code> se ignora y ninguna regla de esta pestaña tiene efecto, salvo los filtros de WordPress. Cubre la carpeta uploads estándar, no una carpeta personalizada. Puede romper plugins que sirven de verdad archivos PHP desde esa carpeta. Para saber si funciona en tu sitio usa la prueba del capítulo <a href="https://www.cisilino.com/es/?p=980">Pestaña Test</a>.</p>
<h3>Desactiva el listado de archivos en carpetas sin index</h3>
<p>Escribe una sola línea: <code>Options -Indexes</code>. Al abrir una carpeta sin página índice verás un error 403 en lugar del listado de archivos. Si usas una carpeta como listado público de descargas, ese listado desaparece.</p>
<h3>Bloquea el acceso directo a wp-config.php, .htaccess, readme.html, debug.log</h3>
<p>El plugin escribe una regla para cada nombre y responde 403. El control se hace sobre el nombre del archivo, no sobre la ruta. Vale por tanto para cada archivo con ese nombre en cualquier carpeta del sitio, incluso dentro de otros plugins. Un plugin que publique su propio <code>readme.html</code> o <code>debug.log</code> quedará bloqueado.</p>
<h2>Las reglas de WordPress (punto 4)</h2>
<p>Estas dos reglas del hardening WordPress son filtros PHP. No tocan <code>.htaccess</code>.</p>
<h3>Desactiva XML-RPC</h3>
<p>La etiqueta es «Desactiva XML-RPC (bruteforce/pingback, casi nunca necesario en los sitios modernos)». El archivo <code>xmlrpc.php</code> sigue en su sitio, pero WordPress rechaza los métodos XML-RPC que requieren inicio de sesión. <strong>Atención:</strong> se detienen la app móvil de WordPress, parte de las funciones de Jetpack y la publicación desde clientes externos. El método <code>pingback.ping</code> no requiere inicio de sesión y el filtro no lo detiene: no cuentes con esta regla para cerrar los pingbacks. Los trackbacks no usan XML-RPC y no se ven afectados. La conexión del plugin al panel no usa XML-RPC, así que no se ve afectada.</p>
<h3>Bloquea la enumeración de usuarios vía ?author=N</h3>
<p>Si la petición contiene el parámetro <code>author</code> con un valor (distinto de vacío y de <code>0</code>), en el sitio público aparece «No encontrado.» con respuesta 404. <strong>Atención:</strong> esta regla no protege la REST API. El listado de usuarios en <code>/wp-json/wp/v2/users</code> sigue siendo accesible. Algunos temas y plugins usan <code>?author=</code> para filtrar los archivos, y quedarán bloqueados.</p>
<h2>Rutas personalizadas para bloquear (punto 5)</h2>
<p>El campo de texto es para quien quiere cerrar una carpeta concreta, por ejemplo <code>/wp-content/uploads/backup-viejo/</code>. Escribe una ruta por línea. Las líneas vacías se ignoran.</p>
<p>Cada línea es <strong>texto literal</strong>. Las mayúsculas cuentan y la parte después del <code>?</code> de la dirección no se compara. La ayuda bajo el campo habla de «patrones», pero aquí no existen. No hay comodines: <code>*</code>, <code>^</code> y <code>$</code> valen como simples caracteres. El plugin bloquea con 403 cada dirección que <strong>contenga</strong> esa cadena, en cualquier punto. Por eso la ruta <code>/wp-content/uploads/backup-viejo/</code> bloquea también <code>/blog/wp-content/uploads/backup-viejo/x</code>.</p>
<p>Este campo no tiene interruptor. La regla está activa en cuanto el campo no está vacío y guardas.</p>
<p><strong>Atención:</strong> si escribes <code>/</code> o <code>wp</code> bloqueas todo el sitio, área de administración incluida. Para volver atrás tendrías que corregir <code>.htaccess</code> por FTP. Incluso una cadena como <code>/uploads/</code> bloquea todas las imágenes. Evita el carácter <code>%</code> en las rutas.</p>
<h2>Valores predeterminados</h2>
<p>Cinco interruptores desactivados y campo vacío. Los ajustes están en la opción <code>csdn_hardening</code>.</p>
<h2>Cómo se usa</h2>
<p>Procede con calma: el hardening WordPress se hace una regla cada vez.</p>
<ol>
<li>Haz una copia de <code>.htaccess</code> antes de empezar.</li>
<li>Marca una sola regla.</li>
<li>Haz clic en «Guardar reglas de hardening».</li>
<li>Comprueba que el sitio se abre y que el panel de administración funciona.</li>
<li>Pasa a la regla siguiente.</li>
</ol>
<p>Tras guardar vuelves a la pestaña General, no a aquella en la que guardaste. Arriba encuentras el aviso. Si hay éxito dice «Reglas de hardening guardadas y aplicadas.». Si hay error dice «Ajustes guardados, pero la escritura en .htaccess ha fallado (¿permisos?). Las reglas no están activas.». Con el error, los dos filtros de WordPress siguen activos igualmente.</p>
<p><strong>Atención:</strong> el plugin no crea ninguna copia de seguridad de <code>.htaccess</code>. Tampoco comprueba la sintaxis antes de escribir. Una regla incompatible con tu servidor puede dar error 500 en todo el sitio. En una red multisitio el archivo es el de la red: el error afecta a todos los sitios.</p>
<h2>Qué pasa entre bastidores</h2>
<p>El plugin escribe entre dos marcadores: <code># BEGIN Cisilino Site Defense Network - Hardening</code> y su <code># END</code> correspondiente. El resto del archivo no se toca. Un segundo bloque, separado, contiene las IP bloqueadas. Si desactivas el plugin, los dos bloques se vacían. Si apagas todo y guardas, el bloque de hardening queda vacío.</p>
<h2>Si algo no funciona</h2>
<p>Si tras el hardening WordPress el sitio muestra error 500, abre <code>.htaccess</code> por FTP. Borra las líneas entre los dos marcadores de hardening. Luego prueba con menos reglas. Si no se escribe en el archivo, comprueba los permisos de <code>.htaccess</code>.</p>
<p>Para una visión más amplia de las buenas prácticas, lee la guía oficial de <a href="https://developer.wordpress.org/advanced-administration/security/hardening/" target="_blank" rel="noopener">hardening de WordPress</a>: explica otras medidas que quedan fuera del plugin.</p>
<p>Capítulo anterior: <a href="https://www.cisilino.com/es/?p=977">Pestaña IP bloqueadas: leer la lista negra</a>. Capítulo siguiente: <a href="https://www.cisilino.com/es/?p=979">Vigilancia de subidas y control de integridad</a>. Para el índice completo de capítulos vuelve a la <a href="https://www.cisilino.com/es/?p=972">introducción del manual</a>.</p><p>The post <a href="https://www.cisilino.com/es/2026/10/30/hardening-wordpress-reglas-htaccess/">Hardening WordPress: las reglas para .htaccess</a> first appeared on <a href="https://www.cisilino.com/es/">Matteo Cisilino</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.cisilino.com/es/2026/10/30/hardening-wordpress-reglas-htaccess/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
