Ver Mensaje Individual
  #19 (permalink)  
Antiguo 14/01/2005, 11:07
Avatar de yoseman
yoseman
 
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 20 años, 6 meses
Puntos: 5
Sólo quería decir que la solución propuesta por ferny no evita el acceso a la i.p del administrador, pués lo que hace es condicionar la salida del boton de IP a que el usuario para ese mensaje no sea el administrador.
En una línea anterior se define en la variable el código html que generá la salida del botón con su link:
Código PHP:
$temp_url "modcp.$phpEx?mode=ip&" POST_POST_URL "=" $postrow[$i]['post_id'] . "&" POST_TOPIC_URL "=" $topic_id "&sid=" $userdata['session_id'];
        
$ip_img '<a href="' $temp_url '"><img src="' $images['icon_ip'] . '" alt="' $lang['View_IP'] . '" title="' $lang['View_IP'] . '" border="0" /></a>';
        
$ip '<a href="' $temp_url '">' $lang['View_IP'] . '</a>'
Pero lo que hacemos es no mostrarlo; no impedir que el archivo modcp.php que es el que realmente muestra la I.P dados una serie de parámetros pasados por query string evalue los niveles del solicitante de la i.p y del nivel del usuario de las I.P solicitada.
En definitiva, si en vez de pinchar en el link de la ip, tus moderadores que tienen permiso para saber las ips ponen en la barra de direccion:

modcp.php?mode=ip&p=4523&t=732&sid= + su identificador de sesión
En las propiedades del link del boton de borrar mensaje, junto con el identificardor de post (p=) encontramos el sid(identificador de sesión), y el identificador del tema en la barra del navegador, y ya tienen el link hecho.

Supongo que sería más seguro buscar el MOD, que seguramente lo que hará además de lo que dice ferny, que es un buen principio, es evaluar una serie de condiciones sobre los permisos de los usuarios implicados en la acción antes de dar la I.P. O también podemos cambiar nosotros el script modcp.php si entendemos un poquillo el código.

Y digo esto, por si alguno piensa que con eso está salvo de que sus moderadores sepan su I.P, y no es así.

Bueno y ahora la segunda parte sería arreglar el archivo modcp.php para lo que queremos, pero advierto que estos cambios los he hecho yo, en un ratillo, no deberían de dar problemas pero no lo certifico al 100%.
La cosa está en evitar que algún moderador avispado se fabrique la query string que se le pasa a modcp pueda ver la ip del admin:
localizar (+/- lin 937):
Código PHP:
    $sql "SELECT poster_ip, poster_id 
            FROM " 
POSTS_TABLE 
            WHERE post_id = $post_id
                AND forum_id = $forum_id"

sustituir por:
Código PHP:
        $sql "SELECT u.user_level,poster_ip, poster_id 
            FROM "
.USERS_TABLE." u, " POSTS_TABLE 
            WHERE post_id = $post_id
                AND forum_id = $forum_id AND u.user_id = poster_id"

localizar (+/- lin 948,949):
Código PHP:
    message_die(GENERAL_MESSAGE$lang['No_such_post']);
        } 
despues añadir:
Código PHP:
    if ((ADMIN == $post_row['user_level']) && (MOD == $userdata['user_level']))
        {
        
message_die(GENERAL_ERROR'Lo sentimos, sólo administradores pueden obtener esta información.');
        } 
Espero que este complemento le sirva a alguién (probad el truco creandoos un usuario moderador sin haber modificado el modcp.php y vereis cómo funciona->devuelve la i.p, y luego probad con la modificación y no debería de dar la i.p, mostraría el mensaje 'Lo sentimos, sólo administradores pueden obtener esta información.')

Salu2
__________________
[+]
[+]