3

UDP クライアント/サーバーで DoS 攻撃をブロックするための優れたプログラミング プラクティスは何ですか? 現時点で頭に浮かぶ唯一のことは、間違ったソースを持つパケットを無視することです (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));
    }
}

特にパケットサイズが小さい場合、十分に速い攻撃により、これがループでブロックされる可能性があります。特定の送信元または正しい送信元以外の送信元からパケットが到着しないようにする方法はありますか? 他に気をつけるべきことは何ですか?コード形式での説明は、ソリューションが既に API に組み込まれている場合に特に役立ちます。

4

1 に答える 1

6

特定の送信元または正しい送信元以外の送信元からパケットが到着しないようにする方法はありますか?

はい。connect()その正しいソースへのソケットだけです。次に、UDP は他のアドレスからのすべてのデータグラムを除外します。SOCK_DGRAM ソケットに関する段落のman 2 connectを参照してください。

于 2013-10-30T05:02:25.883 に答える