[Problema] Bug que te permite hacerte admin
#1

Bueno, paso a comentarles este problema que tuvo como resultado el cierre temporal de mi servidor.
Paso a explicarles en 4 simples pasos como un sujeto X se setea un administrador:
1- Entra Pepe_Veras (llamemoslo asн, los nombres cambian) al servidor y se registra.
2- Terminado el registro, Pepe_Veras deslogea y logea al cabo de 1 segundo.
3- Al terminar el proceso de Logeo, Pepe_Veras tiene un Administrador nivel 2012.
4- Luego de setearse Administrador, Pepe saca a todos los administradores de turno, llama a dos amigos y tambiйn les da administrador, luego de esto, tira el servidor.

їCуmo lo hace? No tengo ni la mбs mнnima remota idea. їCuбl es el bug? Tampoco lo sй. їCуmo fixearlo/arreglarlo? Si no se cуmo lo hace no podrй fixearlo.

En el cуdigo del servidor no hay comandos ocultos que te permitan hacerte administrador, es un servidor que ya lleva online unos cuantos meses y cuando empezamos a editar el cуdigo fue lo primero que me fijй.

A todo aquel que le halla pasado algo asн y pudo solucionarlo, por favor, responda este tema, toda ayuda serб bienvenida.
Reply
#2

Puede ser que en tu GM Halla un comando oculto.

Buscalo!, si no encuentras nada, busca por la funciуn que setea al admin
Reply
#3

Filtro de admins, y problema resuelto.
Reply
#4

Quote:
Originally Posted by Lunnatiicz
Посмотреть сообщение
Puede ser que en tu GM Halla un comando oculto.

Buscalo!, si no encuentras nada, busca por la funciуn que setea al admin
Revisй todos los comandos, todas las veces que se interactъa con la variable que guarda el Admin, y todas las veces que se interactъa con el .txt donde se guarda el personaje, y NADA.

No hay comando oculto, ya me fije, y no creo

Gracias por Responder
Reply
#5

El problema puede ser que no estas reseteando los variables, por ejemplo:
pawn Код:
public OnPlayerConnect(playerid)
{
    Adminlevel[playerid] = 0; // No estoy seguro si usas variables o enum:
    PlayerInfo[playerid][Admin] = 0;
    return 1;
}
Si no reseteas los variables, les dara la informacion del ultimo player que salio del server al nuevo jugador.
Reply
#6

Quote:
Originally Posted by [L3th4l]
Посмотреть сообщение
El problema puede ser que no estas reseteando los variables, por ejemplo:
pawn Код:
public OnPlayerConnect(playerid)
{
    Adminlevel[playerid] = 0; // No estoy seguro si usas variables o enum:
    PlayerInfo[playerid][Admin] = 0;
    return 1;
}
Si no reseteas los variables, les dara la informacion del ultimo player que salio del server al nuevo jugador.
Eso me interesу, pero si, se resetea la variable pAdmin a 0.

Gracias por responder
Reply
#7

Quote:

1- Entra Pepe_Veras (llamemoslo asн, los nombres cambian) al servidor y se registra.
2- Terminado el registro, Pepe_Veras deslogea y logea al cabo de 1 segundo.

Podrias postear la funcion cuando se logea y deslogea?
Reply
#8

Crea un filtro de admins con file, mysql, o lo que tengas ganas, y listo.
Reply
#9

Quote:
Originally Posted by [L3th4l]
Посмотреть сообщение
Podrias postear la funcion cuando se logea y deslogea?
Estem, es muy largo, es el public OnPlayerLogin, OnPlayerConnect y OnPlayerDisconnect, y satura el [pawn]

Cуmo hago?

Quote:

Crea un filtro de admins con file, mysql, o lo que tengas ganas, y listo.

Perdon que pregunte, pero a quй te referнs con un filtro?

Gracias por responder
Reply
#10

Quote:
Originally Posted by MaRcOsWeB
Посмотреть сообщение
Crea un filtro de admins con file, mysql, o lo que tengas ganas, y listo.
Como dice the_chaoz

Quote:
Originally Posted by the_chaoz
Problemas complejos, soluciones simples
Puede que solo tenga un cуdigo mal y eso sea todo.

EDIT: www.pastebin.com <-- ahi pega el script
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)