AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Spanish (https://forums.alliedmods.net/forumdisplay.php?f=135)
-   -   Sistema de cuentas MYSQL/SQLITE con/sin encriptación (https://forums.alliedmods.net/showthread.php?t=176326)

Neeeeeeeeeel.- 01-16-2012 17:52

Sistema de cuentas MYSQL/SQLITE con/sin encriptación
 
4 Attachment(s)
Bueno esto lo había hecho para Yhooon que es un amigo y bueno le agregue lo de encriptar y lo posteo para el que lo quiera usar :3

El code tiene algunas aclaraciones.
El que quiera usar SQLite y no sepa como crear la base de datos les deje una vacía ya hecha en adjuntos, solo ponen el archivo cuentas.sq3 en addons/amxmodx/data/sqlite3
(Si la carpeta sqlite3 no existe, la crean)

Y listo tiene que funcionar.

Espero que les sirva:3

ES NECESARIO ACTIVAR EL MODULE DEL MYSQL O SQLITE

Para la versión de ZP con SQLite necesitan descargar la otra base de datos!

Code:

Changelog:

    1.0.0:
        -Posteo del plugin.
       
    1.0.1:
        -Opitmizacion en el chequeo de una celda de un array.
       
    1.0.2:
        -Proteccion SQL Injection.
       
    1.0.3:
        -SQL_PrepareQuery --> SQL_ThreadQuery.
        -Optimizacion de tabla MYSQL/SQLITE.
        -Fix en la conexión SQLite.
       
    1.0.4:
        -Proteccion: No se permiten ingresar caracteres especiales.
        -Optimización: Se borraron los condicionales de chequeo de " " y TABLE.

    1.0.5
        -Bugfix: Con SQL_ThreadQuery no se usa SQL_Connect

    1.0.6
        -Varios fixes de errores generales.

    1.0.7
        -Revisado & fixeado por r0ma

    1.0.8
        -Fix bug que entran al juego sin loguearse arreglado

    1.0.9
        -Fix bug: Ham_Spawn deberia estar en post
        -Fix de variable no definida
        -Update ZP version



Code:

Creditos:
    shinoda
    Kiske
    Javivi
    ILUSION
    fearAR
    rak
    r0ma


Javivi 01-16-2012 18:39

Re: Sistema de cuentas MYSQL/SQLITE con/sin encriptación
 
http://www.unixwiz.net/images/sqlinjection.jpg

Neeeeeeeeeel.- 01-16-2012 18:47

Re: Sistema de cuentas MYSQL/SQLITE con/sin encriptación
 
Quote:

Originally Posted by Javivi (Post 1633134)

No entendi :crab:

Stereo 01-16-2012 18:55

Re: Sistema de cuentas MYSQL/SQLITE con/sin encriptación
 
Javivi se pincha bases de datos

fearAR 01-16-2012 19:02

Re: Sistema de cuentas MYSQL/SQLITE con/sin encriptación
 
Si no interpreto mal.

Javivi se refiere a SQL Injection.

Saludos.

Neeeeeeeeeel.- 01-16-2012 19:49

Re: Sistema de cuentas MYSQL/SQLITE con/sin encriptación
 
Ah, si lo pensé jaja yo tengo en MI sistema resuelto contra SQL Injection :3 pero bue ya demaciado les di que descubran ellos como protegerlo

La imagen se llama SQLINJECTION así que debe ser eso jajaja.

shinoda 01-17-2012 13:02

Re: Sistema de cuentas MYSQL/SQLITE con/sin encriptación
 
Aún no vi todo el código, pero hay cositas que se puede hacer mejor:

PHP Code:

if( containuser" " ) != -)
    {
        
client_printidprint_chat"el usuario no puede tener espacios" );
        
show_login_menuid );
        return 
PLUGIN_HANDLED;
    } 

¿Por qué no puede tener espacios?


PHP Code:

else if( equaluser], "" ) )
    {
        
client_printidprint_chat"el usuario debe tener al menos 3 letras" );
        
show_login_menuid );
        return 
PLUGIN_HANDLED;
    } 

strlen o !user[2]

Y usa ThreadQuery.

Neeeeeeeeeel.- 01-17-2012 13:15

Re: Sistema de cuentas MYSQL/SQLITE con/sin encriptación
 
Quote:

Originally Posted by shinoda (Post 1633575)
Aún no vi todo el código, pero hay cositas que se puede hacer mejor:

PHP Code:

if( containuser" " ) != -)
    {
        
client_printidprint_chat"el usuario no puede tener espacios" );
        
show_login_menuid );
        return 
PLUGIN_HANDLED;
    } 

¿Por qué no puede tener espacios?


PHP Code:

else if( equaluser], "" ) )
    {
        
client_printidprint_chat"el usuario debe tener al menos 3 letras" );
        
show_login_menuid );
        return 
PLUGIN_HANDLED;
    } 

strlen o !user[2]

Y usa ThreadQuery.

Lo de los espacios porque ami no me gusta que los tengan, al que no le guste simplemente lo borra :P

Lo de las 3 letras si no me acordé que podía poner !user[2], ahí lo cambié thanks.

Y cual es la diferencia de ThreadQuery con PrepareQuery? Leí en los includes las funciones y bueno siempre usé PrepareQuery porque es mas facil:3

Javivi 01-17-2012 19:45

Re: Sistema de cuentas MYSQL/SQLITE con/sin encriptación
 
Tal y como lo tienes ahora no podrias utilizar una db remota sin que se te quede pillado el juego. ThreadQuery sirve para enviar la consulta, y cuando haya repuesta, leerla, sin tener que quedarse esperando a recibirla.

Manu127 01-17-2012 19:54

Re: Sistema de cuentas MYSQL/SQLITE con/sin encriptación
 
Tendrias que arreglar lo del sql injection.

Un amigo, nisiquiera le aparece el menu, pasa de 1 al game sin registrarse/loguearse.

Las thread query no interrumpen el juego, es una nueva manera de consulta que, cuando la ejecutas, espera la respuesta en otro sub-proceso, sin interrumpir el juego.

En cambio, las prepare query van a tildar el juego segun su tiempo de respuesta, lo comprobe yo mismo.

Tenia 1 segundo de delay, con thread query no pasaba nada. En cambio, con prepare query se te tilda 1 sec el servidor. Eso es porque las thread se ejecutan en un subproceso, y no afectan el game play.

Aca taba buscando un post y lo encontre, mira:

Hawk552:

The true power lies in threaded querying. Threaded querying means nothing short of a rewrite of an entire plugin that's written with DBI, but has huge advantages, especially on slow connections. The idea of a threaded query is essentially that a new thread (a sub-process) with which its only goal is to send, monitor, and inform of the things that happen to a query. Because it is on a seperate thread, a query that would normally take 1 second (and 1 second of total connection loss for all clients in the server) still takes the same amount of time, but does not interrupt gameplay.


All times are GMT -4. The time now is 08:03.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.