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:
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.$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) );}
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:
Si alguien piensa que es incoherente, innecesario o débil porfavor digánmelo.$user=$_POST['us']; $ustripped=strip_tags($user); $usersafe= htmlentities($ustripped, ENT_QUOTES, "UTF-8");
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.