Foros del Web » Programando para Internet » PHP »

Como Proteger mi script contra inyeccion SQL / XSS ?

Estas en el tema de Como Proteger mi script contra inyeccion SQL / XSS ? en el foro de PHP en Foros del Web. Hola! Estoy realizando un script en PHP y estoy en el tema de la seguridad... Por lo pronto me gustaria me dijeran que tan inseguro ...
  #1 (permalink)  
Antiguo 22/03/2010, 14:15
 
Fecha de Ingreso: septiembre-2009
Mensajes: 6
Antigüedad: 15 años, 2 meses
Puntos: 0
Como Proteger mi script contra inyeccion SQL / XSS ?

Hola!
Estoy realizando un script en PHP y estoy en el tema de la seguridad... Por lo pronto me gustaria me dijeran que tan inseguro es este script:

(Basicamente recibe del formulario un option button (status), un input hidden que es el id del producto, in input text que es el nuevo precio, al darle clic en enviar se inserta en la base de datos el nuevo precio y el nuevo status (1,0)

Código:
//POST ENVIAR

if (isset($_POST['enviar'])) //Verifica si se apreto el boton enviar
{ 
		
		$status=$_POST['status']; 
		$id=$_POST['id'];
		$precio=$_POST['precio'];		
		$result = mysql_query("update products set products_price= \"$precio\", products_status = \"$status\" where products_id = \"$id\"",$dbf->conn)
		or die(mysql_error()); 
}
//FIN ENVIAR
  #2 (permalink)  
Antiguo 22/03/2010, 14:23
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: Como Proteger mi script contra inyeccion SQL / XSS ?

Completamente inseguro, deberias verificar y validar cada dato que estas recibiendo.

Valores numericos:
$id = $_POST['id'] *1; // Multiplicar por 1
$id = intval($_POST['id']); // Forzar valores enteros
$id = float $_POST['id']; // Forzar punto flotante

Valores alfanumericos (cadenas y textos):
$id = strip_tags($_POST['id']); // Eliminar etiquetas html para minimizar riesgo de XSS

Antes de incluir cadenas en una consulta:
$id = mysql_real_escape_string($id); // Eliminar riesgos de inyeccion SQL

Adicionalmente debes validar cada campo:
Numericos: Si pueden ser cero, "menores que", "mayores que", etc.
Textos: Cadena vacia, longitud minima y maxima, tipo de caracteres permitidos, etc.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 22/03/2010, 14:59
 
Fecha de Ingreso: septiembre-2009
Mensajes: 6
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Como Proteger mi script contra inyeccion SQL / XSS ?

Vaya! Gracias por tu respesta!! Pense que con validar los datos en la base de datos podría ser suficiente! Pero bueno, todavía hay talacha por hacer.

Muchas Gracias
  #4 (permalink)  
Antiguo 22/03/2010, 15:21
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: Como Proteger mi script contra inyeccion SQL / XSS ?

agrego a lo que dijo @Triby
una buena practica es usar sprintf() con las consultas para agregar seguridad

saludos!
__________________
More about me...
~ @rhyudek1
~ Github

Etiquetas: contra, proteger, sql, xss
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:04.