Exemplo n.º 1
0
		captcha_temporal - Valor del captcha calculado por el sistema

	Salida:
		Aceptacion o rechazo del inicio de sesion con la redireccion al lugar correspondiente

	Ver tambien:
		<seguridad_clave> | <cambiar_clave>
*/
if ($PCO_Accion == "Iniciar_login") {
    //Filtra cadenas recibidas para evitar sql injection
    $uid_orig = $uid;
    $clave_orig = $clave;
    $captcha_orig = $captcha;
    $uid = filtrar_cadena_sql($uid);
    $clave = filtrar_cadena_sql($clave);
    $captcha = filtrar_cadena_sql($captcha);
    //Verifica el captcha ingresado por el usuario
    $ok_captcha = 1;
    if (@$captcha_temporal != $captcha) {
        $ok_captcha = 0;
        // Lleva auditoria con query manual por la falta de $Login_Usuario y solamente si no hay un posible sqlinjection
        if ($uid_orig == $uid && $clave_orig == $clave) {
            auditar("Elimina sesiones activas al intentar acceso con CAPTCHA incorrecto desde {$PCO_DireccionAuditoria}", $uid);
        }
    }
    session_destroy();
    $ok_login = 0;
    // Inicia la autenticacion como una solicitud de webservices interna
    // Determina si la conexion actual de Practico esta encriptada
    if (empty($_SERVER["HTTPS"])) {
        $protocolo_webservice = "http://";
Exemplo n.º 2
0
	Variables de entrada:

		uid - Obligatorio: Login utilizado por el usuario
		clave - Obligatorio: Clave del usuario sin cifrar

	Salida:
		Archivo XML que contiene la propiedad de aceptacion en cero o uno (0,1) dependiendo de si las credenciales son o no validas.
		Complemento del archivo XML con datos generales del usuario como login, nombre, descripcion, nivel, correo y fecha de ultimo acceso

	Ver tambien:
		<Iniciar_login> | <cambiar_clave>
*/
if (@$PCO_WSId == "verificar_credenciales") {
    $uid = filtrar_cadena_sql(@$uid);
    $clave = filtrar_cadena_sql(@$clave);
    $salida_xml = "";
    $ok_login_verifica = '0';
    $error_parametros = 0;
    // Verifica parametros minimos para trabajar
    if ($uid == "" || $clave == "") {
        $error_parametros = 1;
    }
    //Verifica MOTOR autenticacion interna
    if (!$error_parametros && ($Auth_TipoMotor == "practico" || $uid == "admin")) {
        $ClaveEnMD5 = hash("md5", $clave);
        $registro = ejecutar_sql("SELECT {$ListaCamposSinID_usuario} FROM " . $TablasCore . "usuario WHERE estado=1 AND login=? AND clave=? ", "{$uid}{$_SeparadorCampos_}{$ClaveEnMD5}")->fetch();
        if ($registro["login"] != "") {
            $ok_login_verifica = '1';
        }
    }
Exemplo n.º 3
0
function ejecutar_sql($query, $lista_parametros = "", $ConexionBD = "")
{
    /*
    	Function: ejecutar_sql
    	Ejecuta consultas que retornan registros (SELECTs).
    
    	Variables de entrada:
    
    		query - Consulta preformateada para ser ejecutada en el motor
    		lista_parametros - Lista de variables PHP con parametros que deben ser preparados para el query separados por $_SeparadorCampos_
    		ConexionBD - Determina si la consulta debe ser ejecutada en otra conexion o motor.  Se hace obligatorio enviar parametros cuando se envia otra conexion
    		
    	Salida:
    		Retorna mensaje en pantalla con la descripcion devuelta por el driver en caso de error
    		Retorna una variable con el arreglo de resultados en caso de ser exitosa la consulta
    */
    //Determina si se debe usar la conexion global del sistema o una especifica de usuario
    if ($ConexionBD == "") {
        global $ConexionPDO;
    } else {
        $ConexionPDO = $ConexionBD;
    }
    global $ModoDepuracion;
    global $MULTILANG_ErrorTiempoEjecucion, $MULTILANG_Detalles, $MULTILANG_ErrorSoloAdmin;
    global $PCO_Accion;
    global $PCOSESS_LoginUsuario, $_SeparadorCampos_;
    // Filtra la cadena antes de ser ejecutada
    $query = filtrar_cadena_sql($query);
    try {
        $consulta = $ConexionPDO->prepare($query);
        //Cuando se reciben parametros entonces se asume recepcion de querys con  interrogaciones  ?
        //que deben ser preparados antes de ejecutarse con cada uno de los parametros recibidos
        if ($lista_parametros != "") {
            $cantidad_parametros = substr_count($query, '?');
            $parametros = @explode($_SeparadorCampos_, $lista_parametros);
            // if ($cantidad_parametros!=count($parametros)) //La cantidad de parametros en query es diferente a los recibidos
            //Recorre cada parametro y toma su valor
            for ($i = 1; $i <= $cantidad_parametros; $i++) {
                /*
                //Si no recibe valor en el parametro hace el bind con vacio para al menos hacerlo valido
                if($parametros[$i-1] == "")
                    $consulta->bindValue($i,'');  // $consulta->bindValue($i,PDO::PARAM_NULL);
                else
                */
                $consulta->bindValue($i, $parametros[$i - 1]);
                //echo 'Parametro '.$i.'='.$parametros[$i-1]."<br>"; //PARA DEPURACION
            }
        }
        $consulta->execute();
        return $consulta;
        //return $consulta->fetchAll();
    } catch (PDOException $ErrorPDO) {
        //Muestra detalles del query solo al admin y si el modo de depuracion se encuentra activo
        if ($PCOSESS_LoginUsuario == 'admin' && $ModoDepuracion) {
            $mensaje_final = $ErrorPDO->getMessage() . '<br><b>' . $MULTILANG_Detalles . '</b>: ' . @completar_parametros($query, $parametros);
        } else {
            $mensaje_final = '<b>' . $MULTILANG_Detalles . '</b>: ' . $MULTILANG_ErrorSoloAdmin;
        }
        //Presenta el mensaje sobre el HTML y como Emergente JS
        mensaje($MULTILANG_ErrorTiempoEjecucion, $mensaje_final, '', 'fa fa-times fa-5x icon-red texto-blink', 'alert alert-danger alert-dismissible');
        echo '<script type="" language="JavaScript"> alert("' . $MULTILANG_ErrorTiempoEjecucion . '\\n\\n' . $mensaje_final . '");</script>';
        //Redirecciona segun la accion
        if ($PCO_Accion == "Iniciar_login") {
            echo '<form name="Acceso" action="' . $ArchivoCORE . '" method="POST"><input type="Hidden" name="PCO_Accion" value=""></form><script type="" language="JavaScript">	document.Acceso.submit();  </script>';
        }
        return 1;
    }
}