2016-04-22 8 views
2

J'ai écrit un petit test qui demande la même URL dans une boucle sans renvoyer les cookies. Après quelques minutes, mon serveur Jetty plante avec un OutOfMemoryError. La cause en est que chaque requête produit une nouvelle session.Comment empêcher une attaque DOS avec de nombreuses sessions de servlet?

Existe-t-il des fonctionnalités du serveur Jetty ou de l'API de servlet pour empêcher de telles attaques?

+0

C'est la responsabilité du loadbalancer/proxy, pas du serveur web/servlet. – BalusC

+0

@BalusC Il n'y a pas d'équilibreur de charge ou de proxy. – Horcrux7

Répondre

0

Tenir compte l'une des techniques suivantes:

  • Ne pas utiliser une technique de gestion de session en mémoire. (Utilisez une base de données)
  • Définissez l'expiration/délai d'attente inférieur
  • Setup session un DoSFilter pour le gérer
  • Installation d'un QoSFilter pour atténuer le comportement un peu mieux.
+0

Cette réponse ne semble pas très utilisable. Le déplacement de la session dans la base de données n'en change pas. Définir un délai d'attente de session à quelques secondes sera fatal. Le QoSFilter n'aide pas à empêcher tout dans ce cas. QoS est un autre problème. Le filtre DoS peut être utile mais quels sont les paramètres utiles? L'utilisez-vous? – Horcrux7

+0

Avoir utilisé chacune de ces techniques sur différents serveurs pour différents cas d'utilisation, et différentes entreprises. Parfois, une seule technique est appropriée, parfois plus d'une est. Ils aident, l'efficacité de chacun est indiquée dans le même ordre dans ma réponse. –