Ver Mensaje Individual
  #2 (permalink)  
Antiguo 02/04/2012, 12:10
Rasec101
 
Fecha de Ingreso: diciembre-2009
Ubicación: Santiago, Chile
Mensajes: 143
Antigüedad: 14 años, 4 meses
Puntos: 2
Respuesta: ¿Una manera de evitar inyecciones SQL mediante la URL?

Cita:
Iniciado por tonydx16 Ver Mensaje
supongamos que mi url sea así

http://url.com/index.php?id=1556

la consulta sería

Código PHP:
Ver original
  1. $id = $_GET['id'];
  2. $consulta = mysql_query("SELECT * FROM tabla WHERE id='$id'");

ahora, la manera que pienso yo de evitar una inyeccion sql sería cerrar la conexión a la base de datos si no existe el id y redirigir a la raíz de la página.

Código PHP:
Ver original
  1. $id = $_GET['id'];
  2. $consulta = mysql_query("SELECT * FROM tabla WHERE id='$id'");
  3.  
  4. if($consulta == TRUE){
  5.  
  6. .....
  7. } else {
  8.  
  9. header("location: http://url.com");
  10. }

este sería una buena opción para evitar inyección sql a través de la URL.?
Mira yo lo que hago es verficar que $_GET['id'] sea un numero antes de hacer cualquier consulta a la base de datos
Código PHP:
Ver original
  1. // verifico que $_GET['id'] sea distinto de un numero si es asi lo redirecciono adonde yo quiera
  2. if(!is_numeric($_GET['id'])){
  3.  
  4. echo "<META HTTP-EQUIV=\"refresh\" content=\"0; URL=index.php\"></p> ";
  5. }
  6. else {
  7. consulta ...
  8. }