使用node.js,用于构建可以处理http请求的tcp服务器的net模块。
我想防止 ddos 攻击,所以我所做的是这样的:
if (status.numOfCurrentRequests + 1 >= MAX_NUM_OF_CONNECTIONS) {
socket.end();
return;
}
我想知道使用是否更好:
socket.destroy();
来自 API:
socket.destroy() # 确保不再发生 I/O 活动
插座。仅在出现错误(解析错误等)时才需要。
有什么区别和好处?
DOS 攻击确实不应该由 HTTP 服务器处理。一旦请求到达,攻击者就通过占用连接(无论多短)来“获胜”。即使它们很短,它们也可以以数千/秒的速度猛击它并阻止其他人连接。此外,他们可能不会尝试通过 TCP 进行“连接”,而只是向服务器发送各种请求。
在较低级别或通过防火墙阻止/检测 DOS 攻击,我确信许多软件和硬件版本都支持某些基本类型的 DOS 检测和预防。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)