2016-04-22 3 views
2

Ich habe einen kleinen Testfall geschrieben, der die gleiche URL in einer Schleife anfordert, ohne Cookies erneut zu senden. Nach einigen Minuten stürzt mein Jetty-Server mit einem OutOfMemoryError ab. Die Ursache ist, dass jede Anfrage eine neue Sitzung erzeugt.Wie verhindert man einen DOS-Angriff mit zu vielen Servlet-Sitzungen?

Gibt es irgendwelche Funktionen des Jetty-Servers oder der Servlet-API, um solche Angriffe zu verhindern?

+0

Das ist die Verantwortung des loadbalancer/proxy, nicht webserver/servlet. – BalusC

+0

@BalusC Es gibt keinen Load Balancer oder Proxy. – Horcrux7

Antwort

0

Betrachten Sie eine der folgenden Techniken:

  • keine In-Memory-Session-Management-Technik anwenden. (Verwenden Sie eine Datenbank)
  • Stellt die Session-Ablauf/timeout niedriger
  • -Setup ein DoSFilter es ein QoSFilter
  • -Setup verwalten das Verhalten ein bisschen besser zu mildern.
+0

Das scheint nicht sehr brauchbare Antwort. Das Verschieben der Sitzung in der Datenbank ändert nichts. Wenn Sie ein Sitzungszeitlimit auf wenige Sekunden festlegen, ist dies ein schwerwiegender Fehler. Der QoSFilter hilft in diesem Fall nicht, das zu verhindern. QoS ist ein anderes Problem. Der DoS-Filter kann hilfreich sein, aber was sind nützliche Einstellungen? Benutzt du es selbst? – Horcrux7

+0

Haben Sie jede dieser Techniken auf verschiedenen Servern für verschiedene Anwendungsfälle und verschiedene Unternehmen verwendet. Manchmal ist eine einzelne Technik angebracht, manchmal mehr als eine. Sie helfen, die Wirksamkeit der einzelnen ist in meiner Antwort in derselben Reihenfolge aufgeführt. –

Verwandte Themen