¿Protección limpia y barata para las solicitudes HTTP de registro de usuarios?

0

Estoy desarrollando un sitio web que tiene registro de usuarios. Ya construí algunas técnicas de protección de límite de velocidad usando nginx y en un nivel inferior usando iptables, pero estoy preocupado por los ataques del mundo real como ip-spoofing o DDoS.

La única solución que conozco es CAPTCHA de Google, que incluso es utilizada por grandes compañías como Reddit y Gitlab. El problema es que no es fácil de usar en dispositivos móviles y tabletas, y además desalienta a los visitantes.

¿Se conoce algún método limpio y barato para las inundaciones de solicitudes HTTP POST? Pensé en agregar un token aleatorio temporal a los parámetros de la POST que también se almacena en mi servidor durante uno o dos segundos usando Redis para verificar si la solicitud está automatizada (es decir, rápida) o por un humano (lento). No quiero convencerme de que esta es una solución confiable ya que no soy un experto en seguridad.

    
pregunta Ejonas GGgg 16.01.2017 - 13:02
fuente

1 respuesta

0

Estoy luchando para imaginar cómo esto brinda protección contra la suplantación de identidad ip. Independientemente de que la suplantación de IP en una conexión TCP sea difícil de lograr, le recomiendo que la ignore por ahora.

En términos de protección de DOS, recomendaría precaución. Cuanto más sofisticadas sean sus medidas de protección, más se convertirán en un cuello de botella y, por lo tanto, se podrán explotar con DOS.

  

Pensé en agregar un token aleatorio temporal a los parámetros de la POST que también se almacena en mi servidor durante uno o dos segundos

Me suena bastante caro. Realmente desea minimizar la cantidad de información que está capturando / intentando almacenar sobre posibles solicitudes de DOS.

Una solución es devolver el costo de almacenamiento al cliente: cree una cookie en el navegador en una página anterior que contenga valores encriptados del lado del servidor que indiquen algunos atributos sobre el cliente (como la dirección IP o ASN, navegador ...) y una marca de tiempo de nivel de milisegundos con javascript y validarla en la solicitud POST.

Tenga en cuenta que debe pensar en cómo validar una dirección IP que puede abarcar más de una sesión.

La eliminación de la cookie y el uso de javascript validan que el cliente es un navegador (o un fax bastante sofisticado) que ha visitado otras páginas de su sitio. Un breve intervalo entre la generación de la marca de tiempo y la cookie que se presenta indicaría un ataque con script.

  

técnicas de protección de límite de velocidad con nginx y en un nivel inferior con iptables

Supondré que ha asegurado que estos no tienen un impacto en la capacidad y que ha cambiado el tamaño de su tabla de conntrack.

    
respondido por el symcbean 16.01.2017 - 14:13
fuente

Lea otras preguntas en las etiquetas