Siguiendo la estela de los dos últimos artículos sobre securización de plataformas, en esta ocasión traemos un truco apuntado por uno de nuestros colaboradores, Fernando, que nos explica que para securizar la API de WordPress y evitar que la usen sin tener un acceso con usuario y contraseña, hay que añadir este filtro en functions.php del tema. De esta manera, podremos abrir nuestra API y usarla, pero no tendremos efectos indeseados por no tenerla securizada.

add_filter( 'rest_authentication_errors', function( $result ) {
    if ( ! empty( $result ) ) {
        return $result;
    }
    if ( ! is_user_logged_in() ) {
        return new WP_Error( 
          'rest_not_logged_in', 
          'No no no.', 
          array( 'status' => 401 ) 
        );
    }
    return $result;
});
Más

Como decíamos en el artículo sobre ocultar la versión de la plataforma de Magento 2, una medida de seguridad básica en las plataformas Open Source es ocultar la versión de la misma, con el objeto de que no sea posible explotar sus vulnerabilidades. En WordPress esto se consigue de diversas maneras, desde el uso de un plugin, como Wordfence o similar, a insertar en el archivo de functions.php una instrucción como esta:

remove_action('wp_head', 'wp_generator')

o una función como esta otra:

function remove_version_info() {
  return '';
}
add_filter('the_generator', 'remove_version_info');

En WordPress es muy sencillo ver la versión de nuestra plataforma, simplemente chequeando nuestro código fuente, o a través del feed de RSS, o incluso, leyendo el archivo readme.html por lo que es una plataforma especialmente sensible a los ataques por vulnerabilidades en cada versión.

Más

Una medida de seguridad básica en las plataformas Open Source es ocultar la versión de la misma, con el objeto de que no sea posible explotar sus vulnerabilidades. En Magento 2 conseguimos esto con una instrucción muy simple:

php bin/magento module:disable Magento_Version

Con esto conseguimos que si hacemos una llamada por navegador a

http://mi-tienda.com/magento_version

en lugar de devolvernos el número de versión de nuestro Magento 2, nos devuelva un error 404 en lugar de (por ejemplo)

Magento/2.4 (Community)

Más