Tres correcciones para WordPress
Los primeros dos parches solucionan un error a la hora de reiniciar la contraseña (por olvido/pérdida) y un fallo en filtro image_send_to_editor.
La primer alternativa es descargar los 2 archivos y sobrescribir por los que estan en el host.
La segunda cambiar manualmente las líneas correspondiente en cada archivo.
1. Editar wp-includes/pluggable.php con el notepad o algún programa similar
2. Buscar la siguiente cadena:
function wp_generate_password($length = 12) {
$chars = “abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()”;
3) Cambiamos por la siguiente cadena:
function wp_generate_password($length = 12, $special_chars = true) {
$chars = ‘abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789′;
if ( $special_chars )
$chars .= ‘!@#$%^&*()’;
1. Editar wp-login.php (esta en el raíz) con el notepad o algún programa similar
2. Buscar la siguiente cadena:
$key = wp_generate_password();
3. Cambiamos por la siguiente cadena
$key = wp_generate_password(20, false);
Y el tercer parche soluciona un bug en los comentarios. El problema reside en que cualquier usuario podía hacerse pasar por el autor del blog. La solución es muy parecida a las otras dos.
1. Editamos wp-comments-post.php (esta en el raíz) con el notepad o algún programa similar
2. Buscamos la siguiente cadena:
$comment_author = trim(strip_tags($_POST[’author’]));
$comment_author_email = trim($_POST[’email’]);
$comment_author_url = trim($_POST[’url’]);
$comment_content = trim($_POST[’comment’]);
3. A continuación ponen este código:
// get list of user (display) names for blog
global $wpdb;
$valid_users = (array)$wpdb->get_results(”
SELECT display_name, user_email FROM ” . $wpdb->prefix . “users”);
// get ID of logged in user (if there is one)
global $userdata;
get_currentuserinfo();
$logged_in_name = $userdata->ID;
$logged_in_email = $userdata->user_email;
// see if the comment author matches an existing author
$found_match = FALSE;
foreach ($valid_users as $va) {
if (trim($va->display_name) != ‘’) {
if (strtolower($va->display_name) == strtolower($comment_author)) {
$found_match = TRUE;
break;
}
}
if (trim($va->user_email) != ‘’) {
if (strtolower($va->user_email) == strtolower($comment_author_email)) {
$found_match = TRUE;
break;
}
}
}
// if commenter is not logged in, but match was found, block the comment
if (trim($logged_in_name) == ‘’) {
if ($found_match == TRUE) {
wp_die( __(’You cannot post using the name or email of a registered author.’) );
}
}
Para personalizar el mensaje que le aparece a los que quieren hacerse pasar por los autores del blog editar la siguiente línea
wp_die( __(’You cannot post using the name or email of a registered author.’) );
Fuentes:
WordpressTrac, Agamum y PuntoGeek








