此问题是来自Information Security Stack Exchange的migrated,因为它可以在Stack Overflow. Migrated上回答5天前。
当你在Node.js中使用http.createServer
时,它是否提供了针对SYN洪水攻击的任何保护?
Node的入门指南提供了一个易于理解的代码,它给了你一个请求对象,但是发生的TCP握手呢?
const http = require('http');
const hostname = '127.0.0.1';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
1条答案
按热度按时间kuarbcqp1#
默认情况下,
http
模块是否保护您免受SYN DoS攻击?不。默认情况下,http
模块几乎不做什么,只是抽象了一些细节(主要可以在net
模块和其他较低级别的模块中找到)。这就是为什么任何构建真实世界的Web服务器的人都可能使用Express,Koa,Restify等框架的原因。然后通常在反向代理和/或负载均衡器之后。你能在普通Node中添加针对SYN flood或其他类型的DoS的保护吗?当然,可能是这样的,比如在
net.Server
中使用一个带有缓存的worker来跟踪连接地址。这种实现在真实的世界中会很混乱,而且大多数都是无用的(因为我前面提到的几点)。