Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/03/2011, 13:39
jesusweb
 
Fecha de Ingreso: febrero-2011
Mensajes: 27
Antigüedad: 13 años, 2 meses
Puntos: 1
¿Es seguro mi código?

Hola compañeros llevo leyendo desde hace un mes pero al final no posteo xq acabo googleando y me va saliendo acabo de empezar con esto de la web php,css,mysql...
y me encanta pero todavia soy un novato,
asi que os quiero enseñar esto a ver que os parece.
Me he informado primero he puesto en off todas las magic quotes, he leido sobre
mysql_escape_string o mysql_real_escape string al final si lo he entendido bien lo más seguro es hacer bind variables y creo que ya no se necesita el mysql escape_string.
Pongo el código para que lo vayais viendo:

Código:
$stm = mysqli_prepare($link, "INSERT INTO userspass VALUES (?, ?, ?, ?,?,?)");
$bind=mysqli_stmt_bind_param($stm, 'isssss',$num, $usersafe, $gen, $_POST['themail'], $d,$estado);
$m=mysqli_stmt_execute($stm);
if(!$m){die( 'stmt error: '.mysqli_stmt_error($stm) );}
La verdad es que es muy simple pero muy consistente si alguien ve algún error en el código que me lo diga, no uso ni adslashes ni stripslashes ni mysql escape string y magic quotes como ya dije.
Esto seria respecto al SQL injection pero también he leido que hay XSS
y funciones como htmlspecialchars htmlentities y
strip_tags.
Mi duda estaba en si usar htmlentities vs strip_tags al final he optado por ambas

Código:
$user=$_POST['us'];
$ustripped=strip_tags($user);
$usersafe= htmlentities($ustripped, ENT_QUOTES, "UTF-8");
Si alguien piensa que es incoherente, innecesario o débil porfavor digánmelo.


En principio no tengo pensado poner nada más salvo una función de input que me coga sólo caracteres asci por ej. del 32 al 126 (los imprimibles) pero soy novato en esto y aunque entiendo bastante rápido los conceptos creo que el tema de seguridad es muy delicado.
He leido que hacer el htmlentities es mejor a la salida del código pero no sé por si acaso yo lo hago a la entrada, a la salida supongo que tendré que decodificarlo aunque no sé qué se decodificará pues ya esta strip_tags.

Bueno gracias por todo y encantado de participar en el foro.