gpt4 book ai didi

c++ - 安全 UDP 套接字编程

转载 作者:太空狗 更新时间:2023-10-29 20:26:29 25 4
gpt4 key购买 nike

关于阻止对 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 中,则代码形式的解释将特别有用。

最佳答案

Is there a way I can prevent packets from arriving from a certain source, or any source besides the correct one?

是的。只需 connect() 连接到正确源的套接字。然后 UDP 将过滤掉所有来自其他地址的数据报。参见 man 2 connect ,有关 SOCK_DGRAM 套接字的段落。

关于c++ - 安全 UDP 套接字编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19672584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com