Emergency Password Reset Script para WordPress – Recuperar Contraseña Administrador

Categorias: Wordpress

Emergency Password Reset Script para WordPress - Recuperar Contraseña Administrador

Emergency Password Reset Script para WordPress – Recuperar Contraseña Administrador

Perder la contraseña de acceso a WordPress es una faena, pero se recupera fácilmente si tenemos acceso al correo electrónico del administrador. Si no tenemos este acceso la cosa se complica algo más, pero tenemos una solución con el «Emergency Password Reset Script» de WordPress.

Si queremos acceder a nuestro WordPress como administradores, necesitamos un nombre de usuario y una contraseña, nada nuevo ya que es algo imprescindible en cualquier acceso que tengamos.

Aunque no es lo que siempre hacemos, debemos tener una contraseña distinta para cada servicio que utilicemos y además, que sea segura, es es un montón de números, símbolos y letras mezcladas sin ningún sentido aparente.

Recordar todo esto puede ser algo realmente imposible si no utilizamos algún gestor de contraseñas, aunque siempre tenemos la opción de restablecer la contraseña y que nos envíen una nueva a nuestra cuenta de correo electrónico.

WordPress tiene su propio sistema de recuperación de contraseña, sólo hay que hacer click en ¿Has olvidado tu contraseña? y en unos minutos recibirás un email desde el que podrás poner una nueva contraseña de acceso.

wordpress recuperar contrasena

El problema que podemos tener, es no tener acceso a la cuenta de correo electrónico, si no tenemos acceso a la cuenta de correo o no sabemos cuál es, no podemos recuperar la contraseña de esta forma.

Desde WordPress.org, tiene una opción para poder solucionar esto llamada Emergency Password Reset Script. Veamos cómo funciona.


Hosting Genérico


Emergency Password Reset Script para WordPress

Emergency Password Reset Script es un script que podemos encontrar en el codex de WordPress.org.

Con él, podemos crear un script que nos ayudará a cambiar la contraseña de acceso a WordPress aunque no tengamos acceso a la cuenta de correo autorizada.

Es una última opción y que solo debemos utilizar si no tenemos más remedio, pero no es aconsejable utilizarlo de forma regular ni como primera opción.

Hay que tener mucho cuidado al utilizar este script y eliminarlo una vez lo hayamos dejado de utilizar.

También hay que tener en cuenta que, aunque no tengamos acceso a la cuenta de correo, el script enviará un email con la contraseña de acceso a la cuenta que esté autorizada.

Esto quiere decir que si la cuenta es de un tercero o está comprometida, no debería usarse, ya que recibirán la contraseña de acceso a WordPress en cuanto usemos el script.

IMPORTANTE: El Script enviará la contraseña a la cuenta de correo. Si es de un tercero, recibirá los datos de acceso. ¡Cuidado con esto!

Lo que necesitamos para poder utilizar Emergency Password Reset Script es lo siguiente:

La operación consiste en crear un archivo en dentro de nuestra instalación de WordPress que contiene un código PHP.

Después acceder al archivo desde un navegador web y cambiar la contraseña, así de fácil.

Lo primero que hay que hacer es crear el archivo, para eso lo primero que haremos será acceder a cPanel.

loguearse cpanel usuarios Hostinet

Una vez dentro de cPanel tenemos que acceder al Administrador de Archivos, si te sientes más cómodo haciendo esto desde un cliente FTP, adelante, el resultado es el mismo.

Dentro del Administrador de Archivos tenemos que dirigirnos a la carpeta donde esté instalado nuestro WordPress, por lo general será public_html, pero depende de dónde esté instalado WordPress.

Si tienes WordPress instalado en un subdominio o carpeta, es ahí donde debes acceder.

Una vez estés en la carpeta que corresponda, tiene que crear un archivo llamado emergency.php.

En la parte superior del Administrador de Archivos verás una opción llamada + Archivo y desde ahí podemos crear el archivo que necesitamos.

crear archivo emergencia - WordPress

Una vez creado el archivo, lo localizamos y pulsamos sobre él con el botón derecho del ratón. En el menú contextual que aparecerá, tenemos que pulsar sobre la opción Edit (las dos veces).

editar archivo emergencia - WordPress

Ahora tenemos que copiar y pegar el código que nos facilita WordPress y que podemos encontrar en este enlace.

<?php
/*
	This program is free software; you can redistribute it and/or modify
    	it under the terms of the GNU General Public License as published by
    	the Free Software Foundation; either version 2 of the License, or
    	(at your option) any later version.

	This program is distributed in the hope that it will be useful,
    	but WITHOUT ANY WARRANTY; without even the implied warranty of
    	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
    	along with this program; if not, write to the Free Software
    	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*/

require './wp-blog-header.php';

function meh() {
	global $wpdb;

	if ( isset( $_POST['update'] ) ) {
		$user_login = ( empty( $_POST['e-name'] ) ? '' : sanitize_user( $_POST['e-name'] ) );
		$user_pass  = ( empty( $_POST[ 'e-pass' ] ) ? '' : $_POST['e-pass'] );
		$answer = ( empty( $user_login ) ? '<div id="message" class="updated fade"><p><strong>The user name field is empty.</strong></p></div>' : '' );
		$answer .= ( empty( $user_pass ) ? '<div id="message" class="updated fade"><p><strong>The password field is empty.</strong></p></div>' : '' );
		if ( $user_login != $wpdb->get_var( "SELECT user_login FROM $wpdb->users WHERE ID = '1' LIMIT 1" ) ) {
			$answer .="<div id='message' class='updated fade'><p><strong>That is not the correct administrator username.</strong></p></div>";
		}
		if ( empty( $answer ) ) {
			$wpdb->query( "UPDATE $wpdb->users SET user_pass = MD5('$user_pass'), user_activation_key = '' WHERE user_login = '$user_login'" );
			$plaintext_pass = $user_pass;
			$message = __( 'Someone, hopefully you, has reset the Administrator password for your WordPress blog. Details follow:' ). "\r\n";
			$message  .= sprintf( __( 'Username: %s' ), $user_login ) . "\r\n";
			$message .= sprintf( __( 'Password: %s' ), $plaintext_pass ) . "\r\n";
			@wp_mail( get_option( 'admin_email' ), sprintf( __( '[%s] Your WordPress administrator password has been changed!' ), get_option( 'blogname' ) ), $message );
			$answer="<div id='message' class='updated fade'><p><strong>Your password has been successfully changed</strong></p><p><strong>An e-mail with this information has been dispatched to the WordPress blog administrator</strong></p><p><strong>You should now delete this file off your server. DO NOT LEAVE IT UP FOR SOMEONE ELSE TO FIND!</strong></p></div>";
		}
	}

	return empty( $answer ) ? false : $answer;
}

$answer = meh();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<title>WordPress Emergency PassWord Reset</title>
	<meta http-equiv="Content-Type" content="<?php bloginfo( 'html_type' ); ?>; charset=<?php bloginfo( 'charset' ); ?>" />
	<link rel="stylesheet" href="<?php bloginfo( 'wpurl' ); ?>/wp-admin/wp-admin.css?version=<?php bloginfo( 'version' ); ?>" type="text/css" />
</head>
<body>
	<div class="wrap">
		<form method="post" action="">
			<h2>WordPress Emergency PassWord Reset</h2>
			<p><strong>Your use of this script is at your sole risk. All code is provided "as -is", without any warranty, whether express or implied, of its accuracy, completeness. Further, I shall not be liable for any damages you may sustain by using this script, whether direct, indirect, special, incidental or consequential.</strong></p>
			<p>This script is intended to be used as <strong>a last resort</strong> by WordPress administrators that are unable to access the database.
				Usage of this script requires that you know the Administrator's user name for the WordPress install. (For most installs, that is going to be "admin" without the quotes.)</p>
			<?php
			echo $answer;
			?>
			<p class="submit"><input type="submit" name="update" value="Update Options" /></p>

			<fieldset class="options">
				<legend>WordPress Administrator</legend>
				<label><?php _e( 'Enter Username:' ) ?><br />
					<input type="text" name="e-name" id="e-name" class="input" value="<?php echo attribute_escape( stripslashes( $_POST['e-name'] ) ); ?>" size="20" tabindex="10" /></label>
				</fieldset>
				<fieldset class="options">
					<legend>Password</legend>
					<label><?php _e( 'Enter New Password:' ) ?><br />
					<input type="text" name="e-pass" id="e-pass" class="input" value="<?php echo attribute_escape( stripslashes( $_POST['e-pass'] ) ); ?>" size="25" tabindex="20" /></label>
				</fieldset>

				<p class="submit"><input type="submit" name="update" value="Update Options" /></p>
			</form>
		</div>
	</body>
</html>
<?php exit; ?>

 

Una vez pegado el código, no te olvides guardar los cambios y ya estaría todo hecho por ahora.

Ahora sólo tenemos que acceder desde cualquier navegador web al archivo que acabamos de crear.

Para esto sólo tenemos que poner la URL de nuestro dominio seguido del nombre del archivo, algo así, pero cambiando el nombre del dominio por el vuestro:

http://midominio.info/emergency.php

Esto nos llevará a una página en la que nos pedirá que pongamos el Nombre de usuario y la Contraseña, sin nada más.

También nos informa de que no se hacen responsables del uso del este script y que es algo que debemos usar como último recurso y si no podemos modificar la contraseña desde la base de datos.

wordpress emergencia contrasena - WordPress

Una vez cambiada la contraseña, si no nos muestra ningún mensaje de error, ya podemos acceder a nuestro WordPress con la nueva contraseña.

No hay que realizar ninguna gestión más, la contraseña se cambia directamente y por este motivo, lo único que tenemos que hacer es eliminar el archivo emergency.php que hemos creado.

IMPORTANTE: Después de usar el script, debes borrar el archivo emergency.php que has creado, ya que cualquiera tendrá acceso y podrá cambiar la contraseña.

Para eliminar el archivo emergency.php, sólo tenemos que acceder de nuevo al Administrador de Archivos, localizarlo, click derecho sobre él y Delete.

eliminar archivo emergencia - WordPress

 

Cosas a Tener en Cuenta

Como verás, con el método de Emergency Password Reset Script para WordPress, recuperar la contraseña es relativamente sencillo, pero como dicen en las advertencias, se trata del último recurso.

No hay que olvidar que se enviará un email con los datos de acceso, si o si, aunque nosotros no tengamos acceso a la cuenta de correo y eso conlleva un riesgo.

Ya sea porque la cuenta de correo sea del anterior propietario, diseñador o esté comprometida, el que tenga acceso a esta cuenta de correo, conocerá el acceso al WordPress.

Así que, aunque usemos este método, no está de más volver a cambiar la contraseña una vez hayamos accedido a nuestro perfil de WordPress.

Y por supuesto, muy importante, eliminar el archivo que hemos creado para recuperar la contraseña, ya que si lo dejamos ahí, cualquiera puede acceder y cambiar nuestra contraseña de acceso.

Hosting WordPress SSD con IP Española

Hosting WordPress