Was sind gute Programmierpraktiken in Bezug auf das Blockieren von DoS-Angriffen auf einen UDP-Client/Server? Das Einzige, was mir im Moment einfällt, ist das Ignorieren von Paketen mit falschen Quellen, wie zum Beispiel (unter Verwendung von WinSock2):
if (oSourceAddr.sa_family == AF_INET) {
uSourceAddr = inet_addr(oSourceAddr.sa_data);
if (uSourceAddr == oCorrectDestAddr.sin_addr.S_un.S_addr) {
queueBuffer.push(std::string(aBuffer));
}
}
Angriffe, die schnell genug sind, könnten dazu führen, dass dies in einer Schleife blockiert - insbesondere, wenn die Paketgröße klein ist. Gibt es eine Möglichkeit, zu verhindern, dass Pakete von einer bestimmten Quelle oder einer anderen als der richtigen Quelle eingehen? Auf welche anderen Dinge sollte ich achten? Eine Erklärung in Form von Code wäre besonders hilfreich, wenn die Lösungen bereits in die API integriert sind.