método para encriptar contraseñas
acerca de la inyeccion sql.
hay varias utilerias en php que te ayudar a evitar este tipo de problemas.
y tambien tu puedes crear tu propia funcion para detectar y evitar inyecciones sql.
solo debes entender la mecanica del inyection en un punto muy fundamental:
es tu propia propia pagina la que hace la inyeccion, asi que eres tu quien facilita el trabajo del hacker.
hay mucha documentacion acerca de esto pero te lo voy a comentar de manera basica
todo esta en encontrar el punto en el que puedes manipular el string que contiene el comando sql.
algo tan simple como:
$UserId=$_POST["TexUserid"];
sql command = "select * from usuarios where userid=" & $UserId & "'";
esto puede permitir tantas inyecciones sql como el hacker quiera, borrar, insertar, modificar, etc, ya que UserId es manipulable de esta forma
$_POST["TexUserId"]="0'; delete from usuarios; -- (esto fue lo que se capturo en el campo de texto del id del usuario)
la cadena sql que ejecuta tu pagina web queda asi
select * from usuarios where idusuario='0'; delete * from usuarios; --'
asi de sencillo.
que tienes que hacer?
validar que no capturen --
validar que no capturen ;
validar que no capturen delete, execute, drop, insert, create, from, join etc.
y algo que me ha ayudado bastante para evitar esto es:
limita el TextBox al numero maximo indispensable del dato que se debe capturar.
si el userid es de 8 digitos limita el textbox a 8 digitos, eso dificulta el inyection.
si el textbox es para capturar un numero validalo a que solo haya numeros, +-,
si es un nombre, limitalo solo a texto.
cualquier caracter detectado como no permitido debe borrar loq ue se capturo ANTES de ejecutar el query
$UserId=""; (y se acabo)
de ahi en mas, usa tu imaginacion, piensa como hacker y reduciras las posibilidades de hack.
2 cocineros que siguen una misma receta da como resultado 2 pasteles iguales ... la experiencia de los cocineros se detecta con solo probar los pasteles.
y para encryptar contrase;as no han dada mejor que el hash