Método de prevención DDOS de clave API

0

Hola, solo quería algunos comentarios sobre un DDOS que impida el script php que estoy diseñando. Es bastante simple y quería algunos comentarios sobre si ustedes piensan que sería efectivo.

Actualmente estoy usando ulogin framework como base y he implementado las Claves de API. En este momento el usuario enviará una solicitud con una clave. Esta clave se compara con la base de datos para ver si es correcta. Entonces, si la clave no es correcta, el programa volverá.

Si la clave es correcta, se calcularán algunas estadísticas. Lo primero es incrementar el contador. El promedio de aciertos por segundo se calculará desde el momento en que comenzaron a solicitar hasta la hora actual. También hay una ventana de X segundos en la que se restablecerá el contador (digamos 300). El programador especifica el número máximo de solicitudes que deben permitirse en esta ventana. Si la clave está sobre el límite de solicitudes por reinicio de estadísticas (Ventana) o sobre una cierta cantidad de solicitudes por segundo, se bloquearán y no se les dará acceso. Sin embargo, el contador sigue aumentando pero se inicia otro contador (blockcount).

Cuando el contador se establece en 0 al final de la ventana, el recuento para la siguiente ventana se establecerá en el número de bloque que se encuentre y el conteo de bloque se establecerá en 0. Si el usuario no usa la API para X (ventana) segundos, ambos contadores se restablecerán a 0.

He agregado una variable transferpenalty (0-1) que llevará un porcentaje de la cuenta de bloques a la siguiente ventana en lugar de la cuenta de bloques completa, pero no creo que sea necesario tener esto.

¿Ya se está haciendo esto? ¿Protegería esto contra una clave de API detectada que se usa para (D) DOS un servidor? ¿Cuáles son tus pensamientos :)

    
pregunta 25.07.2014 - 17:56
fuente

2 respuestas

2

Su código es bueno para monitorear la actividad de los usuarios en el servidor pero, para ser honesto, no puede evitar la prevención de ataques DDOS, ya que el objetivo de los ataques DDOS es enviar toneladas de solicitudes al servidor para que esté demasiado ocupado para responder. Sus usuarios previstos.
su código parece estar haciendo muchas comprobaciones para determinar si el número de solicitudes ha superado sus estándares, y esto significa que no solo el atacante ha alcanzado su objetivo de mantener su servidor ocupado, sino que también lo está ayudando con un montón de procesamiento, que es hecho por tu código.
Imagina que cada vez que hay una solicitud, tu código tiene que buscar en la base de datos y recuperar información y luego compararlos y hacer muchas otras cosas.
No hay nada que puedas hacer en PHP para detener este tipo de ataques. y también si el atacante usa un ataque UDP, su código no hará nada ya que Apache escucha el puerto TCP. Lo único que puede proteger su sitio web de los ataques DDOS es su empresa de alojamiento. la empresa necesita haber necesitado equipos como:

  1. cortafuegos
  2. Interruptores limitadores de velocidad
  3. enrutadores apropiados
  4. Hardware del extremo frontal de la aplicación
  5. prevención basada en IPS
  6. defensa basada en DDS
  7. Blackholing y sinkholing
  8. limpiar tuberías

pero si necesita un sistema de inicio de sesión seguro, puede usar un captcha, incluso el que usted mismo creó. simplemente genere un número de 5 dígitos al azar y cree una imagen en PHP con el número impreso y muestre la imagen en el formulario y cuando el usuario envíe el formulario, verifique si el número que generó coincide con el usuario ingresado. y también puede usar las bibliotecas AES de PHP / JavaScript para cifrar las entradas de los usuarios en el lado del cliente y descifrarlas en el servidor.

    
respondido por el Agha 25.07.2014 - 23:22
fuente
0

la compañía de alojamiento no hará mucho por usted en términos de DDoS. Tan pronto como llegue a ser grande (que con la mayoría de los servidores de hosting es pequeño) y / o inunde el ISP, se volverá loco. Intente algo como Prolexic o Akamai (la API más tarde con su nuevo lanzamiento). buena suerte.

    
respondido por el scuba steve 20.04.2017 - 11:42
fuente

Lea otras preguntas en las etiquetas