Heli0s, tengo un formulario para crear usuarios;
Código PHP:
<FORM ACTION="registrar.php" METHOD="post">
<br>
<b>* Nick:</b><br><br>
<INPUT TYPE="text" NAME="nick" SIZE="20" MAXLENGTH="20">
<BR><br>
<b>Email:</b><br><br>
<INPUT TYPE="text" NAME="email" SIZE="28" MAXLENGTH="100">
<BR><br>
<b>* Password:</b><br><br>
<INPUT TYPE="password" NAME="password" SIZE="28" MAXLENGTH="20">
<BR><br>
<b>Nombre:</b><br><br>
<INPUT TYPE="text" NAME="nombre" SIZE="28" MAXLENGTH="255">
<BR><br>
<INPUT TYPE="submit" CLASS="boton" VALUE="Registrar">
La seguridad debería aplicarla en la pagina que procesa este codigo, no?
He echo lo siguiente:
Código PHP:
<?php
include ("conex.php");
function quitar($mensaje){
$mensaje = str_replace("<","<",$mensaje);
$mensaje = str_replace(">",">",$mensaje);
$mensaje = str_replace("\'","'",$mensaje);
$mensaje = str_replace('\"',""",$mensaje);
$mensaje = str_replace("\\\\","\\",$mensaje);
return $mensaje;
}
if(trim($HTTP_POST_VARS["nick"]) != "" && trim($HTTP_POST_VARS["password"]) != ""){
$sql = "SELECT id FROM usuarios WHERE nick='".quitar($HTTP_POST_VARS["nick"])."'";
$result = mysql_query($sql);
if($row = mysql_fetch_array($result)){
echo "<META HTTP-EQUIV=\"refresh\" CONTENT=\"2; url=fusuarios.php\">";
echo "<table style=\"height:100%;width:100%;\"border=\"0\"><tr><td class=\"estilo34\"><div align=\"center\">Error, ese nick ya ha sido registrado. <br> Seras redireccionado automaticamente.</div></td></tr></table>";
}
else
{
$sql = "INSERT INTO usuarios (nick,password,nombre,email) VALUES (";
$sql .= "'".quitar($HTTP_POST_VARS["nick"])."'";
$sql .= ",'".quitar($HTTP_POST_VARS["password"])."'";
$sql .= ",'".quitar($HTTP_POST_VARS["nombre"])."'";
$sql .= ",'".quitar($HTTP_POST_VARS["email"])."'";
$sql .= ")";
mysql_query($sql);
echo "<META HTTP-EQUIV=\"refresh\" CONTENT=\"2; url=administracion.php\">";
echo "<table style=\"height:100%;width:100%;\"border=\"0\"><tr><td class=\"estilo34\"><div align=\"center\">El registro del usuario se ha efectuado correctamente. <br> Seras redireccionado automaticamente.</div></td></tr></table>";
}
mysql_free_result($result);
}
else
{
echo "<META HTTP-EQUIV=\"refresh\" CONTENT=\"2; url=fusuarios.php\">";
echo "<table style=\"height:100%;width:100%;\"border=\"0\"><tr><td class=\"estilo34\"><div align=\"center\">Debes rellenar como mínimo el Nick y el Password. <br> Seras redireccionado automaticamente.</div></td></tr></table>";
}
mysql_close();
?>
Como veis, ya he remplazado caracteres. Ahora que más medidas de seguridad debería aplicar? Mysql_real_escape_string?
O si es mejor el HTMLEntities, que el str_replace... Como debería quedar?
Un saludo.