Ver Mensaje Individual
  #2 (permalink)  
Antiguo 06/07/2004, 21:37
gonzita
 
Fecha de Ingreso: marzo-2004
Ubicación: Bariloche ARGENTINA
Mensajes: 36
Antigüedad: 20 años, 1 mes
Puntos: 1
para entrar en tu base de datos podrían aplicar varias técnicas

1) la inyección sql, es decir, tendrías que evitar una consulta del tipo:
"SELECT Count(*) FROM Usuarios WHERE Usuario = '' or '1'='1' AND password = '' or '1'='1'"
que puede hacer cualquier usuario malintencionado solo poniendo " ' or '1'='1 " en campos de formularios que tomen datos de la base de datos.

¿cómo evitarlo?... bueno, deshabilitando las comillas simples de las peticiones que ingresen en tu base de datos, ya sea mediante formulario o url.

un script que hace esto es el siguiente:(podés ponerlo en todas tus páginas o simplemente llamás con un nombre cualquiera al script y lo incluis con "include" en las páginas que lo requieran)
<?
// codigo para evitar la inyeccion sql

// se modifican las variables pasadas por URL ...
foreach($_GET as $variable=>$valor){
$_GET[$variable] = str_replace("'", "\'", $_GET[$variable]);
}
// ... y tambien las variables de formularios
foreach($_POST as $variable=>$valor){
$_POST[$variable] = str_replace("'", "\'", $_POST[$variable]);
}
?>

2) si tenés algún script que haga uploads tenés que poner algún validador para que no te suban cualquier script maligno y lo ejecuten via navegador...

3) tené cuidado tambien de no dejar los archivos de configuración demasiado desprotegidos, por ejemplo, no te conviene darles por ejemplo extensión "*.inc" porque se puede invocar desde el navegador, usá mejor ".php"

eso es lo que se me ocurre ahora... tal vez hay otras maneras de evitar ataques a la db...