Crear Custom Post Types en WordPress puede ser relativamente sencillo, podemos utilizar un plugin o crearlos cada vez por cada uno que...
Seguridad en WordPress
WordPress es posiblemente el CMS más utilizado hoy día en todo el mundo, en cuanto a seguridad se refiere, está bien protegido si mantenemos el sistema actualizado, pero deja al descubierto demasiada información que puede comprometer seriamente la seguridad de nuestro sitio web, a la seguridad de WordPress, no se le suele dar la importancia que se merece y esto algo por lo que los desarrolladores deberíamos preocuparnos más. Por si fuera poco, todavía muchos desarrolladores web ni siquiera hacen uso de las “buenas prácticas” o de las opciones de las que dispone el sistema por defecto.
Vamos a enumerar algunas buenas prácticas, consejos, configuraciones y funciones que podemos utilizar para proteger al máximo nuestro WP:
Utiliza un servidor seguro
Este aspecto es un pilar muy importante en la seguridad de nuestro sitio web, por ahorrarnos unos euros podemos tener serios problemas, utiliza un hosting profesional y de calidad.
Elige una buena contraseña
Utiliza letras, números y caracteres especiales permitidos, puedes ayudarte con la herramienta How Secure is my password
Elimina los archivos readme.html y license.txt
Estos archivos dejan al descubierto información como nuestra versión de WP
Elimina el archivo wp-config-sample.php
Recuerda cambiar el usuario administrador por defecto
Elimina temas y plugins que no utilices
Protege el directorio wp-admin con contraseña
Puedes proteger este directorio desde tu hosting para evitar el acceso al mismo
Instala algún plugin de seguridad
Plugins como Siteguard, iThemes Security, All In One WP Security o Wordfence pueden ser de gran ayuda
Cambia el prefijo de las tablas por defecto
Por defecto, WP instala las tablas con el prefijo wp_, cambialo por uno menos predecible en el archivo wp-config.php, utiliza letras minusculas y números, por ejemplo “fvghp12sxc4_”.
Usa las claves únicas de autentificación
Accede a la herramienta de WP y actualiza tu archivo wp-config.php para proteger el sistema con las claves de autentificación únicas de WordPress
Genera un buen archivo robots.txt
Evita que los motores de búsqueda puedan rastrear carpetas o ficheros que puedan dar información sobre tu sistema
User-agent: *
Disallow: /feed/
Disallow: /trackback/
Disallow: /wp-admin/
Disallow: /wp-content/
Disallow: /wp-content/plugins /
Disallow: /wp-content/themes /
Disallow: * /feed /
Disallow: /wp-includes/
Disallow: /xmlrpc.php
Disallow: /wp-
Cambia las rutas por defecto del sistema
Podemos cambiar la configuración para mover las carpetas del sistema y protegernos de los robots desde nuestro archivo wp-config.php
/* Cambia la ruta wp-content */
define( 'WP_CONTENT_DIR', dirname(__FILE__) . '/nuevacarpeta/wp-content' );
define( 'WP_CONTENT_URL', '//misitio.com/nuevacarpeta/wp-content' );
/* Cambia el directorio de plugins */
define( 'WP_PLUGIN_DIR', dirname(__FILE__) . '/nuevacarpeta' );
define( 'WP_PLUGIN_URL', '//misitio.com/nuevacarpeta' );
define( 'PLUGINDIR', dirname(__FILE__) . '/nuevacarpeta' );
/* Cambia la carpeta de subida de archivos */
define('UPLOADS', 'nuevacarpeta');
Desactiva el editor del panel de administración
Es una buena práctica evitar que todos los usuarios puedan editar archivos del sistema desde el panel de administración
/* Desactiva el editor del panel de administración */
define('DISALLOW_FILE_EDIT', true);
Oculta la ruta que da acceso al nombre de los autores y cambia el “Alias” por otro nombre
Es muy importante evitar que se pueda acceder al nombre de usuario del administrador, aunque nos parezca algo poco predecible, es tan sencillo como escribir en el navegador “sitio.com/?author=1” , solo con eso nos dará el nombre del usuario con ID 1, que por lo general, es el administrador del sitio, también podemos usar otros ID para hacernos con nombres de usuario del sistema, ¿Cuanto tardaría un ataque de fuerza bruta en sacar el pass?.
Cambia el Alias para evitar que la url muestre el nombre de usuario con el que se accede al sistema.
Si quieres, puedes bloquear o cambiar el acceso a esta url modificando la ruta o eliminando la misma en tu archivo functions.php, evitando de esta forma que sea accesible:
/* Restringir el acceso a que se puedan ver los autores */
add_filter('init', create_function('$a', 'global $wp_rewrite; $wp_rewrite->author_base = ""; $wp_rewrite->flush_rules();'));
/* Cambiar la ruta de acceso de los autores */
function cambia_author_permalink() {
global $wp_rewrite;
$wp_rewrite->author_base = '';
$wp_rewrite->author_structure = "/acceso-restringido/" . $wp_rewrite->author_base;
add_rewrite_rule('usuario/([^/]+)/?$', 'index.php?author_name=$matches[1]', 'top');
}
add_action('init','cambia_author_permalink');
Utiliza funciones para ocultar información relevante
En nuestro archivo functions.php podemos crear funciones que nos ayuden a ocultar la información que muestra el sistema por defecto:
/* Limpieza de wp_head */
function ddw_head_clean() {
remove_action('wp_head', 'rsd_link');
remove_action('wp_head', 'wp_generator');
remove_action('wp_head', '_wp_render_title_tag', 1);
remove_action('wp_head', 'feed_links', 2);
remove_action('wp_head', 'index_rel_link');
remove_action('wp_head', 'wlwmanifest_link');
remove_action('wp_head', 'feed_links_extra', 3);
remove_action('wp_head', 'start_post_rel_link', 10, 0);
remove_action('wp_head', 'parent_post_rel_link', 10, 0);
remove_action('wp_head', 'adjacent_posts_rel_link', 10, 0);
remove_action('wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);
remove_action('wp_head', 'wp_shortlink_wp_head', 10, 0);
remove_action('wp_head', 'feed_links', 2);
remove_action('wp_head', 'feed_links_extra', 3);
}
add_action('init', 'ddw_head_clean');
/* Limpieza de emojis */
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'wp_print_styles', 'print_emoji_styles' );
/* Elimina la versión de WordPress */
add_filter('the_generator', '__return_false');
Desactiva los errores de la página de login
/* Desactivar los errores de la página de login */
function ddw_log_err_msg() {
return '';
}
add_filter('login_errors', 'ddw_log_err_msg');
Desactiva el código HTML en los comentarios
/* Desactiva el código HTML en los comentarios */
add_filter('pre_comment_content', 'wp_specialchars');
Desactiva XML-RPC
/* Desactiva XML-RPC */
add_filter('xmlrpc_enabled', '__return_false');
function disable_xmlrpc_ping ($methods) {
unset( $methods['pingback.ping'] );
return $methods;
}
add_filter( 'xmlrpc_methods', 'disable_xmlrpc_ping');
Elimina información de los plugins
/* Eliminar meta qtranslate */
remove_action('wp_head','qtranxf_wp_head_meta_generator');
Desactiva las actualizaciones de plugins desde el panel
/* Desactivar actualizaciones de plugins desde el panel */
define('DISALLOW_FILE_MODS', true);
Desactiva por completo el acceso al panel
Si no vas a necesitar acceder en un tiempo al panel de administración y tu sitio no necesita esta funcionalidad, puedes desactivar esta opción, pero recuerda que para volver a acceder, necesitarás eliminar esta función de tu archivo functions.php
/* Desactiva por completo el acceso a WP */
add_action('login_form','redirect_wp_admin');
function redirect_wp_admin(){
$redirect_to = $_SERVER['REQUEST_URI'];
if(count($_REQUEST)> 0 && array_key_exists('redirect_to', $_REQUEST)){
$redirect_to = $_REQUEST['redirect_to'];
$check_wp_admin = stristr($redirect_to, 'wp-admin');
if($check_wp_admin){
wp_safe_redirect( '404.php' );
}
}
}
Modifica la ruta de acceso wp-login
Podemos modificar la ruta de acceso al panel de administración con plugins como Siteguard o utilizar algo más liviano como Rename wp-login.php, para añadir un extra de seguridad a esta funcionalidad, utiliza una ruta con guiones como por ejemplo “gato-45negro” y en tu archivo robots.txt deshabilita “gato-” para que no se indexe la ruta y además no sea visible desde el archivo robots, una muy buena práctica a tener en cuenta.
Utiliza un plugin de control de acceso por dispositivo movil
Latch es un plugin que nos permite cerrar el acceso a sitios web bajo demanda y desde dispositivos móviles.
Estas son solo algunas de las cosas que podemos hacer para proteger nuestro sistema WordPress de ataques, pero todavía podemos hacer muchas más cosas, como configurar un buen archivo .htaccess, mantener al día nuestras copias de seguridad o ayudarnos con algunas herramientas como: WPScan Vulnerability Database, WPScan, Exploit DB o complementos para Firefox como SQL Inject me, XSS Inject me o Acces me de Security Compass para ver vulnerabilidades en nuestro sistema WP.
Quizás te interese ...
En ocasiones los títulos de nuestros proyectos son demasiado extensos como para mostrarlos completos en las migas de pan de nuestro sitio web,...
WordPress límita por seguridad ciertas extensiones de archivo, en algunos casos necesitamos subir archivo de tipo .svg o .webp que serán...
Yo no sé vosotros pero yo de momento me niego a utilizar el nuevo editor de WordPress Guttenberg, de momento sigo utilizando el editor...
Valoraciones
Sé el primero en valorar