No és gaire habitual, però a vegades algun comentarista es fa passar er l’autor del blog, cosa que pot ocasionar molts problemes.

Per evitar-ho, tenim dues opcions: restringir els comentaris als usuaris registrats o retocar codi. Nosaltres retocarem codi, que és més senzill, perquè la gent no se sol registrar en un lloc per enviar un comentari de tant en tant…

El hack que farem servir l’han creat els de Dragon Design i és bastant simple: comprova que les dades que introdueixi el comentarista no coincideixin amb les de l’autor del blog, i si ho fan, mostra un missatge d’error. Òbviament, si vosaltres ou l’autor del blog i no esteu connectats, no us deixarà posar un comentari amb les vostres dades… Només caldrà que us connecteu.

Per fer servir el hack, haurem de:

  1. Obrir l’arxiu wp-comments-post.php, ubicat al directori arrel de WordPress.
  2. Buscar el codi següent:
    $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. Afegir just a sota del codi anterior el codi següent:
    // 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.’) );
    }
    }

En el cas que vulguem editar el missatge d’error, només cal editar la línia
wp_die( __('You cannot post using the name or email of a registered author.') );

dimarts, 29 de abril del 2008Més seguretat a WordPress 2.5

Veig a docs4beto que WordPress 2.5 té una nova variable a l’arxiu wp-config.php anomenada SECRET_KEY que protegeix les nostres cookies evitant l’accés a la nostra base de dades mitjançant una inserció de codi SQL. Si no esteu acostumats a aquest tipus de coses, molt possiblement això us soni a xino, però és important.

La variable s’ha d’escriure a l’arxiu wp-config.php abans de la clau ?> que tanca el codi PHP d’aquesta manera:

define(’SECRET_KEY’, ‘put your unique phrase here’);

Aquesta clau ha de ser indesxifrable, i podem fer servir una frase en l’idioma que vulguem el més llarga possible o bé fer servir la web que han creat els de WordPress especialment.

dilluns, 28 de abril del 2008Bug important a WordPress 2.5.1!

Pel què sembla, hi ha un bug important a WordPress 2.5.1 que fa que si perdem la contrasenya i en demanem una de nova, aquesta nova no funcioni bé. Per solucionar-ho, d’aqui a poc sortirà la versió 2.5.2 de WordPress, que a més solucionarà un petit problema amb el filtre image_send_to_editor. De moment, no hi ha data definitiva per aquesta nova versió, però podem corregir el problema de les contrasenyes editant alguns arxius, tal i com t’expliquem a continuació.

Segueix llegint »


© 2008 WordPressCat | Tema iKon per Wordpress per RealGeek.com Traduït per Marc Riera | Funciona amb Wordpress