Ver Mensaje Individual
  #7 (permalink)  
Antiguo 08/05/2013, 09:48
cafu3000
 
Fecha de Ingreso: abril-2013
Mensajes: 11
Antigüedad: 11 años
Puntos: 1
Respuesta: Como Evitar SQL Injection

Cita:
Iniciado por bulter Ver Mensaje
Lo que quiere decir patrick_ que nunca te debes de fiar al usurio, siempre tienes que asumir que lo que te pasa el user es malo para tu script.

ejemplo:
Formulario al usuario: ( le pides el nombre )
Código PHP:
Type your name here: <input type="text" name="data" /> 
Resultado: (le dices hola)
Código PHP:
echo "Hola " $_POST["data"]; 
Pues, el usuario debe de poner por ejemplo Pepito, pero igual puede poner

Código PHP:
<script>alert("xss injection");</script> 
( que por cierto es lo de menos :D ) Esto es una entrada mala para tu codigo y la tienes que evitar la, es decir filtrar y comprobar la entrada. En el caso de un nombre $_POST["data"] debe de contener solo letras y si hay apellidos espacios. En caso de edad $_POST["age"] debe de ser integer etc.

Código PHP:
$age = (int)$_POST["age"];
preg_match("/^[a-zA-Z-\s]*/"$_POST["name"], $name);

echo 
"Hi, " $name[0] . ". You are " $age " years old"
esto es un ejemplo. Otro seria:

Código PHP:
$age = (int)$_POST["age"];
$name htmlspecialchars(trim(addslashes($_POST["name"])));

echo 
"Hi, " $name[0] . ". You are " $age " years old"

Muchas gracias Bulter, y dime..esa especificacion debo hacer ara cada una de las variables de mi formulario que son :
Código:
    $rut = $_POST['rut'];
	$razonsocial  = $_POST['razonsocial'];
	$direccion1 = $_POST['direccion1'];
	$nombrecomercial = $_POST['nombrecomercial'];
	$giro = $_POST['giro'];
	$numero = $_POST['numero'];
	$depto = $_POST['depto'];
	$comuna = $_POST['comuna'];
	$ciudad = $_POST['ciudad'];
	$telefono = $_POST['telefono'];
	$web = $_POST['web'];