Tema: Seguridad
Ver Mensaje Individual
  #3 (permalink)  
Antiguo 13/02/2008, 15:36
shock_dude
 
Fecha de Ingreso: febrero-2008
Ubicación: Bahia Blanca
Mensajes: 173
Antigüedad: 16 años, 3 meses
Puntos: 7
Re: Seguridad

El tema es muy extenso, y como bien dijo GatorV, deberìas buscar en google sobre sql injection, xss, etc. y tambien otro muy importante llamado "remote file inclusion" Pero brevemente te puedo resumir algunas directivas basicas de seguridad que siempre hay que tener en cuenta:

1) filtra todo lo que entra. (si el campo està vacìo, si tiene el tipo de caracteres que deberìa tener, ej: numerico/cadena, etc, si tiene caracteres como "//" "\\" " '' " (barras, comillas, etc).
2) filtra todo lo que sale tambien :) , esto nadie lo tiene en cuenta, pero es muy importante para preventir ataques semànticos. Osea, no muestres lo que no se tiene que mostrar.
3) usa solamente variables en datos variables. Para los datos que ya estan definidos usa constantes (ej: define(nombre,valor) ).
4) no uses variable globales.
5) nunca hagas ej: include ($variable) o header("Location: $variable") ni $var = $var2, osea, nunca pases una variable como paràmetro en su totalidad. Siempre hay que pasar una parte constante y otra variable , ej include (/includes/$variable).
6) Te paso un script que usa SMF Forum, es para programadores perezosos :) , simplemente hay que copiarlo al comienzo de cada .php en el que uses db's (le hice una pequeña traduccion).

function limpieza($var){
if (!is_array($var)) return addslashes($var);
$new_var = array(); foreach ($var as $k => $v)$new_var[addslashes($k)]=limpieza($v);
return $new_var;
}
$_POST=limpieza($_POST);
$_GET=limpieza($_GET);
$_REQUEST=limpieza($_REQUEST);
$_SERVER=limpieza($_SERVER);
$_COOKIE=limpieza($_COOKIE);
?>

Al poner este script "al principio" de cada codigo que uses, lo que haces es limpiar las variables antes de usarlas.

salu2

Última edición por shock_dude; 13/02/2008 a las 15:48