Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/05/2008, 01:27
Avatar de kaninox
kaninox
 
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 8 meses
Puntos: 49
consulta sobre inyeccion :/

tengo una duda yo utilizo este codigo para mis paginas en donde controlo los accesos

Código PHP:
<?php
include "includes/conectar.php";   //conexion a base de datos. 

function limpiaCadena ($cadena)
{
if (!
get_magic_quotes_gpc())
$cadena=mysql_real_escape_string($cadena);
return 
$cadena;


$con sha1($_POST[contrasena]); // encriptamos la contraseña
/* ¿El usuario existe? */
$busca_usuario=mysql_query("SELECT * FROM usuarios"
." WHERE USER='$_POST[usuario]'"
." AND PASSWORD = '$con'");
//comparamos los parametros....
//si el usuario es igual al que ingresamos
//y si la contraseña encriptada es la misma
//que esta en la base de datos encriptada igualmente....

if(mysql_num_rows($busca_usuario)==1// Los datos son validos
{
/* Crear la sesion y sus variables ... */
/* Redireccionar */
session_start(); // Definimos la sesion para aplicarle seguridad a nuestras paginas internas...
$_SESSION['usuario_activado']=limpiaCadena($_POST['usuario']);
$_SESSION["usuarioincorrecto"]= "Yes";
    
header ("Location: site/index.php");
}
else 
// Acceso invalido
{
//si es invalido guardo ip y fecha para bloquear numero max de accesos....
$ip $_SERVER[REMOTE_ADDR];
$fecha date("Y-m-d");
                
         
mysql_query ("INSERT INTO flood_login"
                
." (ip, fecha)"
                
." Values"
                
." ('$ip', '$fecha')") or die ("Error ".mysql_error());
                
header("Location: index.php?errorpagina=ok");
}
?> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
ahora mi pregunta es cuando hago mi funcion limpiaCadena seria mejor aplicarla antes de modo

que en la consulta valla limpia?? :/ no se me entro la duda pues

o sea hacer

Código PHP:
//declarar una variable $usuario_activate limpiar la cadena
$usuario_activate limpiaCadena($_POST['usuario']);
$con sha1($_POST[contrasena]); // contraseña
/* ¿El usuario existe? */
$busca_usuario=mysql_query("SELECT * FROM usuarios"
//aqui aplicar la consulta con la cadena limpia????
." WHERE USER='$usuario_activate'"
." AND PASSWORD = '$con' ");

if(
mysql_num_rows($busca_usuario)==1// Los datos son validos
{
/* Crear la sesion y sus variables ... */
/* Redireccionar */
session_start(); // Definimos la sesion para aplicarle seguridad a nuestras paginas internas...
//aqui ademas definir la session_name??? creo que es lo mismo no :/ 
$_SESSION['usuario_activado']=$usuario_activate
si encuentran como queda mejor y que se le puede agregar se los agradeceria :D

saludos
__________________
Gokuh Salvo al mundo. PUNTO!!!!