entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

0voto

Cómo evitar inyección de código sql con PHP

¿Qué problema de seguridad tiene este código (de haberlo) y como podría evitarlo en tal caso?

mysql_query("SELECT * FROM tabla WHERE id = {$_POST['id']}")

3 Respuestas

2votos

santiago Puntos650

puedes realizar varias cosas.

  1. utilizar mysql escape strings:
    http://www.php.net/manual/es/function.mysql-real-escape-string.php
  2. en la query no poner directamente el resultado de un post. primero es mejor tomar el id que llega, aplicarle int sobre el resultado, o verificar si es un entero con la función: http://php.net/manual/es/function.is-int.php

luego de eso, asignarlo en una variable y dicha variable ponerla en la query:

$nuevoID = $_POST['id'];
int $nuevoID;
if (is_int ($nuevoID)) {
// ejecutar la query
} else
{
echo "número inválido";
}

0voto

iblancasa Puntos1330

A parte de lo que ha dicho santiago, deberías buscar en Internet sobre cómo evitar, en general, las inyecciones SQL. Seguro que, a parte de lo que ha dicho el compañero, que es lo básico, se te ocurre (o te encuentras) alguna cosa interesante para hacerle.

Un saludo.

0voto

Peter Puntos150480

Como te dice santiago, es susceptible a inyección de código SQL, se puede evitar usando la función mysql_real_escape_string para sanitizar los datos provistos por los usuarios.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta