elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  Error en sistema de seguridad
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Error en sistema de seguridad  (Leído 1,638 veces)
Puntoinfinito


Desconectado Desconectado

Mensajes: 919


#! /win/archlinux


Ver Perfil WWW
Error en sistema de seguridad
« en: 26 Marzo 2013, 21:50 pm »

Hey  ::)

Estoy intentando crear un "sistema de seguridad" para que no me floodeen mi página web cosa que ya me pasó anteriormente. La aplicación permite subir archivos entonces decidí hacer algún sistema que cada X peticiones te saliera un captcha para cuntinuar y hasta que no pasara X tiempo, no volviera a la normalidad.

Código
  1. <?
  2.  
  3. //...
  4.  
  5.  
  6. $SESSION['nuller'] = 0;
  7. if (!$SESSION['total']) {
  8. $SESSION['total'] = 1; }
  9.  
  10.  
  11. if ($SESSION['total'] <= 5) {
  12. $SESSION['nuller'] = 0;
  13. $SESSION['total'] = $SESSION['total'] + 1;
  14. }
  15. else {
  16. if ($SESSION['nuller'] == 0) {
  17. $SESSION['nuller'] = 1;
  18. $SESSION['tiempo'] = time() + (3 * 60);
  19. cuntinue;
  20. }
  21. if ($SESSION['tiempo'] >= time()) {
  22. $SESSION['total'] = 0;
  23. $sec = "0";
  24. $page = $_SERVER['PHP_SELF'];
  25. header("Refresh: $sec; url=$page");
  26. exit();
  27. }
  28. echo "<form method='post' action='captcha/validar.php'>".recaptcha_get_html($publickey, $error)."<br /><input type='submit' /></form>";
  29. exit();
  30. }
  31.  
  32. //...
  33.  
  34.  

Explico: Esto lo que hace es ;

Código:
$SESSION['nuller'] = 0;
if (!$SESSION['total']) {
$SESSION['total'] = 1; }

Crea una sesión que se llama total que será el total de peticiones que hace. Esta misma cuando llegue a ser superior a 5 le pedirá un captcha. Por otro lado también declaramos una sesión llamada nuller que lo único que hará será crear o no crear una fecha para que vuelva a la normalidad.

Código:
if ($SESSION['total'] <= 5) {
$SESSION['nuller'] = 0;
$SESSION['total'] = $SESSION['total'] + 1;
}
else {
if ($SESSION['nuller'] == 0) {
$SESSION['nuller'] = 1;
$SESSION['tiempo'] = time() + (3 * 60);
cuntinue;
}

Aquí como he dicho, vemos que va sumando peticiones y cuando llega a 6 se crea una variable tiempo para controlar hasta que tiempo ha de estar pidiendo captcha. En este caso hasta 3 min después. Se ve como dice que nuller ha de ser de valor 1 para que cuando vuelva a entrar no se le haga otra vez la variable tiempo y su tiempo sea otro. Para que se mantenga vamos.

Código:
if ($SESSION['tiempo'] >= time()) {
$SESSION['total'] = 0;
$sec = "0";
$page = $_SERVER['PHP_SELF'];
header("Refresh: $sec; url=$page");
exit();
}
echo "<form method='post' action='captcha/validar.php'>".recaptcha_get_html($publickey, $error)."<br /><input type='submit' /></form>";
exit();
}

Finalmente aquí vemos como en caso de que el tiempo ya haya pasado, el total de peticiones vuelva a ser 0 y que se haga un reload para hacer lo que quieria el usuario con normalidad. En caso de que no sea el tiempo, se va a pedir el código captcha.

Espero que se entienda más o menos... Necesito ayuda porque las peticiones que se pueden hacer son infinitas, es decir no pide el código captcha. :(

Saludos!!


En línea

AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.
s7evin

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Re: Error en sistema de seguridad
« Respuesta #1 en: 27 Marzo 2013, 10:26 am »

Buenos días!

Esto es para cualquier tipo de petición sobre tu servicio web?
O solo se aplica sobre un formulario?
Porque si es sobre cualquier petición lo veo un poco extraño jeje, pero tu sabrás el motivo por el cual lo haces, en eso ya no entro... :P

No sé si estas guardando las variables de sesión sobre ese array ($SESSION) previamente, sino es así la super-global de sesión es "$_SESSION" y no "$SESSION" (corregidme si me estoy equivocando... quizá en alguna versión anterior tenia esa otra referencia), por tanto deberías estar 'seteando' y recogiendo los valores sobre el array $_SESSION.

Código:
<?php
session_start();
 
$_SESSION['nuller'] = 0;
if (!$_SESSION['total']) {
$_SESSION['total'] = 1;
}

//....

?>

Espero haber sido de ayuda.
Saludos!


En línea

Puntoinfinito


Desconectado Desconectado

Mensajes: 919


#! /win/archlinux


Ver Perfil WWW
Re: Error en sistema de seguridad
« Respuesta #2 en: 27 Marzo 2013, 11:54 am »

Es para un formulario :P

Lo acabo de probar con lo de
Código:
 $_SESSION 
y nada, no sale el código captcha. :/
En línea

AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Sistema de Camaras de Seguridad
Electrónica
Zorrohack 5 4,316 Último mensaje 1 Marzo 2005, 01:59 am
por cambus
Sistema de seguridad para tu Carro
Electrónica
jmrinconf 5 9,810 Último mensaje 15 Agosto 2008, 05:49 am
por juniox
Mejorar Seguridad de mi sistema
Desarrollo Web
BerinGer 0 1,930 Último mensaje 27 Mayo 2011, 18:35 pm
por BerinGer
Sistema de seguridad
Seguridad
llesikale 0 1,572 Último mensaje 13 Junio 2014, 19:10 pm
por llesikale
Abriendo sistema de seguridad
Dispositivos Móviles (PDA's, Smartphones, Tablets)
delanoche86 1 1,779 Último mensaje 2 Enero 2015, 11:54 am
por mester
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines