Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-03-2009
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.142
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

¡Pero cómo que no! ¡¡Si acabas de convencerme de lo contrario!!

Lo estoy ahora mismo probando Román, y, parece que funciona... Este es el código que de momento está ejecutándose al "entrar" al formulario:

Código PHP:
  public function AssertAccessRetries(){
    global 
$gbInput;
    if(isset(
$_SESSION[GBUSER_SESSION_ACCESS_RETRIES])){
      if(
$_SESSION[GBUSER_SESSION_ACCESS_RETRIES
       >= 
GBUSER_MAX_ACCESS_RETRIES_NUM){
         return new 
GbError(array(
           
ra('Maximum user access retries detected.'),
           
ra('Please, close your session and try again.')
         ));
      }
    }else{
      if(
$gbInput->IsHttpGetRequest()){
        
$_SESSION[GBUSER_SESSION_ACCESS_RETRIES] = 0;
      }
    }
  } 
Y, este otro, se ejecutaría sólo cuando se enviase el formulario:

Código PHP:
  if(!isset($_SESSION[GBUSER_SESSION_ACCESS_RETRIES])){
    return new 
GbError(ra('Invalid user session. Please, try again.'));
  }else{
    
$_SESSION[GBUSER_SESSION_ACCESS_RETRIES]++;
  } 
El primero me parece más curioso que el segundo: fíjate que si no existe la variable de sesión, no la establece sin más: sólo lo hace si la petición es HTTP GET. Como pulgoso manda el formulario vía HTTP POST... se va a encontrar (y de hecho se encuentra) con el segundo código...

Ya digo, el asunto parece funcionar, aunque, no dudo de que pudiera "complicarse" lo que quisiese, guardando IPs, fechas, etc. Sin embargo, creo que podría valer tal cual, sin tantas complicaciones, pues, los problemas no los tendría el usuario normal y corriente, sino los caniches "roba contraseñas"... y de eso se trata, ¿no?

¡¡¡Ahora vas a decirme que no!!!

Lo que hay que hacer es pruebas y más pruebas... suponiendo varias posibilidades, cuantas más mejor, y ver si el invento aguanta o qué.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #2  
Antiguo 12-03-2009
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto


No sirve.

A ver, tú mismo dijiste desde el principio, que si el usuario accede como gente bien desde un navegador, sólo puede hacer tres intentos y no podrá volver hasta que no cierre su sesión. Ahora el perro hace lo mismo: manda la cookie de sesión (que lee en el primer acceso al formulario) y queda como perro bueno y tu script intenta la autenticación. Ni siquiera vuelve a intentarlo, simplemente cambia -ahora sí- la sesión e intenta de nuevo, bien portado, y es como si fuera la primera vez.

Tiene que amarrarse la IP.

// Saludos
Responder Con Cita
  #3  
Antiguo 12-03-2009
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.142
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Bueno. Mientras hacía las pruebas, algunas mejoras he añadido, de todas formas. Y sigo haciendo pruebas... porque chico, ¡ahora parece que sí que sirve! Estoy intentándome poner en la piel del pitbull, a ver qué tendría que hacer, según tú dices... Estoy aquí con Snoopy y ya no puede enviar, directamente, el formulario, eso está claro. Se me había saltado antes comprobar si se enviaba el formulario mediante HTTP POST, esto ahora se comprueba. De modo que no puede hacer una petición HTTP GET, porque, aun con datos buenos, no funcionaría.

Ahora tú dices que podría hacer primero una petición, y luego otra, manteniendo la sesión, enviando la cookie correspondiente, pero, si lo hace así, ¿no estaríamos consiguendo lo que queremos? Tengo un lío de espanto, ahora mismo. De todas formas, lo siento sólo por ti, pues, como digo, entre pitos y flautas he hecho algunos cambios y mejoras que ya no me las quita nadie. Y sigo probando a ver...
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #4  
Antiguo 12-03-2009
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.142
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Sigo probando, Román, y, enviando la cookie de sesión, lo que obtengo con el "script" es que al cabo supero el número de intentos... ¿no se cumple ya con esto el objetivo? El pitbul puede pasarse por caniche, pero, entonces jugará con las reglas, y sólo tendrá un número de intentos posibles, dificultando el ataque por fuerza bruta. O sea, que, bien. ¿O tengo que probar de otra manera?
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 12-03-2009
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Ya te caerá el veinte, ya te caerá

A ver. Estás de acuerdo que con un navegador normalito puedo hacer tres intentos y ya, ¿no es cierto? Aún con el mecanismo de ahora.

Pero también estás de acuerdo que si cierro el navegador puedo realizar otros tres intentos ¿no?

Pues esto es lo que hace el perro. Luego de sus tres intentos, "cierra" el navegador cambiando la cookie de sesión (de hecho, simplemente no mandándola), y va de vuelta la mula al trigo...

// Saludos
Responder Con Cita
  #6  
Antiguo 12-03-2009
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.142
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Sí; acabo de caer del guindo, como suele decirse. Je je je... ¿ves como no era tan sencillo?

¡Te lo he dicho desde un principio! Y tú erre que erre...

¡Fail!

PD. De todas maneras, insisto, he hecho algunos cambios por el camino bastante útiles.

Código:
 1.3 - 12/3/2009

 [?] Better recognition of HTTP POST form submitted in admin forms
 [?] Change GBCACHE_EXPIRE_SESSION_CHECK for more descriptive value
 [?] GbError class send now an HTTP 404 error code to clients
 [+] GbInput IsPostFormSubmit, IsHttpGetRequest, IsHttpPostRequest
No está mal para empezar el día, digo la noche, bueno, allí el día, o la tarde, aquí la noche, madrugada. ¡Eh!
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 12-03-2009 a las 03:32:28.
Responder Con Cita
  #7  
Antiguo 12-03-2009
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Vamos a ver si cuando te convenza de esto no ya me convenciste tú a mi de lo contrario, y así ad infinitum, o, como se dice, ad nauseum

// Saludos
Responder Con Cita
  #8  
Antiguo 12-03-2009
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Tengo que volver a leer acerca de los token, porque es seguro que se usan mucho. Incluso el vBulletin los usa (mira el formulario de inicio de sesión y verás un campo con un valor bastante rarito).

Bueno, creo que es mejor irse a descansar

// Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como hacer que se vea "Si" en vez de "TRUE" en un DBGrid lu9eui C++ Builder 2 07-08-2007 04:03:13
Acceso a Outlook 2003 Reminders y error "Invalid Variant Operation" saldanaluis Providers 2 24-05-2007 21:17:58
Implementar una nueva opción para la propiedad "FormStyle" JM75 OOP 3 15-02-2007 15:53:44
Implementar "FloodFill" en CLX salvica Gráficos 1 07-09-2004 19:52:45


La franja horaria es GMT +2. Ahora son las 03:14:38.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi