Foros del Web » Programando para Internet » PHP »

codigo seguro?

Estas en el tema de codigo seguro? en el foro de PHP en Foros del Web. pedi por favor la auditoria del siguiente codigo.. estoy desarrollando una aplicacion sobre AJAX y quiero hacer las cosas bien en relacion a los posibles ...
  #1 (permalink)  
Antiguo 03/03/2009, 14:49
 
Fecha de Ingreso: mayo-2007
Mensajes: 11
Antigüedad: 16 años, 11 meses
Puntos: 0
codigo seguro?

pedi por favor la auditoria del siguiente codigo..
estoy desarrollando una aplicacion sobre AJAX
y quiero hacer las cosas bien en relacion a los posibles inyecciones de codigo

Código:
<?php
header('Content-type: text/plain; charset=ISO-8859-1');

	include 'lib/script_connect.php';

	$tipo = (int) strip_tags($_POST['tipo']);

	
		if ($tipo == 0){
			$sql = "SELECT * FROM articulo, pedido GROUP By (idarticulo) LIMIT 8";
			
		}elseif ($tipo !=0){
		
			$sql = sprintf("SELECT *  FROM articulo, pedido WHERE  (articulo.tipo =%u)) GROUP By (idarticulo) LIMIT 8"
			, mysql_real_escape_string($tipo));
		}
		
		$resultado = mysql_query($sql, $link_db);

		while ($reg = mysql_fetch_array($resultado)){
			include 'lib/json_detalle.php';		
			include 'lib/json_foto.php';
		}
		mysql_free_result($resultado);
?>
  #2 (permalink)  
Antiguo 03/03/2009, 14:52
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: codigo seguro?

yo lo veo bien...

aun así, es mejor que leas muy bien que son SQL Injection, XSS y CSRF

si lo lees con atención, te vas a dar cuenta de en que consisten los ataques... en lugar de "protegerte" contra una amenaza que desconoces...

pienso, eso sería lo ideal... suerte!


Edito:

al hacer use de (int) ya estas convirtiendo el $tipo en entero, de modo que es innecesario el mysql_real_escape_string() que haces mas adelante...

y de hecho, si usas (int) tampoco tiene caso el strip_tags() anterior... ya que (int) convierte todo a un entero.... así que con o sin strip_tags() el resultado es el mismo...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 03/03/2009, 15:57
0zx
 
Fecha de Ingreso: marzo-2009
Mensajes: 5
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: codigo seguro?

Pues Puede que con INT, no puedar Inyectar Codigo SQL, pero talves podria generar algun "error" que se mostrara en Pantalla.

Si Ingresas el Siguiente Codigo:
error_reporting(E_NONE);

Evitas que se Muestren errores, ocupa menos recursos que Ocupar @ adelante de las variables .

En lo Posible Ocupa Htmlentities. Me Parece mas Prolijo y evita errores.

$var = $_POST['var'];
htmlentities($var, ENT_QUOTES);


Tambien Intenta Ocupar Excepciones try , catch.

Cita:
try {
$error = 'Always throw this error';
throw new Exception($error);

// Code following an exception is not executed.
echo 'Never executed';

} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}

// Continue execution
echo 'Hello World';
?>
Asi Controlas Todos los Posibles Errores. y el Resultado es Mucho mas Pro

Saludos Espero que te Sirvan los Consejos¡
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 04:13.