Estoy implementando un sistema de registro y login de usuarios y estoy un poco obsesionado con la inyección SQL que pudiera llegan a intentar algún piratilla malintencionado.
El campo login consta de 2 textbox: usuario (email) y contraseña.
Para validar el campo de usuario (email) uso:
Código PHP:
Ver original
public function mailControl($email){ $mail_correcto = 0; //compruebo unas cosas primeras if ((strlen($email) >= 6) && (substr_count($email,"@") == 1) && (substr($email,0,1) != "@") && (substr($email,strlen($email)-1,1) != "@")){ //miro si tiene caracter . //obtengo la terminacion del dominio //compruebo que la terminación del dominio sea correcta //compruebo que lo de antes del dominio sea correcto if ($caracter_ult != "@" && $caracter_ult != "."){ $mail_correcto = 1; } } } } } if ($mail_correcto) return true; else return false; }
Para validar la integridad del campo contraseña, solo permito valores alfanumericos. No quiero que puedan poner ni comas, ni puntos, ni apostrofes ni mierdas extrañas, solo numeros y letras. para ellos uso:
Código PHP:
Ver original
public function varcharControl($valor){ }
Una vez compruebo q el usuario y contraseña cumplen la integridad exigida paso los 2 campos codificados por md5.
Uso una buena seguridad? Es mejorable? Hay algún agujero que se me escapa?