Ver Mensaje Individual
  #5 (permalink)  
Antiguo 08/02/2010, 16:29
Avatar de zerpico_01
zerpico_01
 
Fecha de Ingreso: enero-2008
Ubicación: Wilde - Avellaneda -
Mensajes: 421
Antigüedad: 16 años, 3 meses
Puntos: 13
Respuesta: Seguridad base de datos con mysql_real_escape_string

Cita:
Iniciado por ferruiz Ver Mensaje
Tengo una web con base dedatos y he oido que pueden atacar la web y que se puede poner código para evitarlo. He leido algo sobre esta función: mysql_real_escape_string . El problema es que no tengo conocimientos de php y por mucho que busco en foros e intento ponerlo siempre me da error.
Este es el código que yo tengo de acceso a base de datos:
<?php
$link=mysql_connect("localhost","usuario","passwor d");

mysql_select_db('base_datos');
$n=$_GET['id'];
$todo=mysql_fetch_array(mysql_query("select * from pueblos where cod_id='".$n."'"));

?>

¿donde y como tendría que poner el código para tener mayor seguridad ante una posible inyeccion sql ?
Como digo no tengo conocimientos de php y en cuanto cambio una comilla o una coma me sale error por lo que tendría que hacerlo sobre este código que pongo aqui.
Gracias por vuestra colaboración.
Código PHP:
$link=mysql_connect("localhost","usuario","password");

mysql_select_db('base_datos');
$n=htmlentities($_GET['id'],ENT_QUOTES);

////SI $n NO ES NUMERO ENVIO A OTRA PAGINA 
  
if (!preg_match("/^[0-9]+$/"$n))
  {
 
header("Location:../index.php");
exit();
}

$todo=sprintf("select * from pueblos where cod_id='%s'",stripslashes(mysql_real_escape_string($n))); 
SALUDOS!