当前位置: 首页> 科技> IT业 > 南充网站建设有哪些_即将新款手机上市_河南网站推广多少钱_网站收录提交入口

南充网站建设有哪些_即将新款手机上市_河南网站推广多少钱_网站收录提交入口

时间:2025/7/11 0:58:40来源:https://blog.csdn.net/w2sft/article/details/144419311 浏览次数:1次
南充网站建设有哪些_即将新款手机上市_河南网站推广多少钱_网站收录提交入口

NodeJS后端,用express实现的Web服务器,通过记录访问频率和行为模式,识别潜在的恶意活动,从而实现Web服务器防扫描功能。


代码:

const express = require('express');
const app = express();// 用于存储IP地址及其请求历史
const ipHistory = {};// 防目录扫描中间件
function preventDirectoryScanning(req, res, next) {const ip = req.ip || req.connection.remoteAddress;// 初始化该IP的历史记录if (!ipHistory[ip]) {ipHistory[ip] = {requests: [],lastRequestTime: Date.now(),blockedUntil: 0,};}const history = ipHistory[ip];// 如果当前时间还在封禁时间内,则直接返回403if (Date.now() < history.blockedUntil) {console.log(`Blocked request from ${ip}: ${req.url}`);return res.status(403).send('Forbidden');}// 清除过期的请求记录history.requests = history.requests.filter(request => Date.now() - request.time < 60 * 1000); // 保留最近一分钟内的请求// 添加新的请求记录history.requests.push({time: Date.now(),url: req.url,});// 检查是否有大量对不存在资源的请求const recentRequestsCount = history.requests.length;const uniqueUrls = new Set(history.requests.map(r => r.url));const uniqueUrlCount = uniqueUrls.size;// 如果在短时间内有大量不同的URL请求,则可能是扫描行为if (recentRequestsCount > 20 && uniqueUrlCount / recentRequestsCount > 0.8) {// 封禁该IP一段时间history.blockedUntil = Date.now() + 5 * 60 * 1000; // 5分钟console.log(`Detected suspicious scanning activity from ${ip}. Blocking for 5 minutes.`);return res.status(403).send('Forbidden');}next();  // 继续处理请求
}// 使用中间件
app.use(preventDirectoryScanning);// 定义路由
app.get('/', (req, res) => {res.send('Hello World!');
});// 启动Web服务器
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {console.log(`Server is running on http://localhost:${PORT}`);
});

代码说明:

ipHistory用于存储每个IP地址的请求历史。
中间件preventDirectoryScanning会检查来自特定IP的所有请求,并记录它们。
如果某个IP在短时间内尝试访问多个不同的URL(这里定义为超过20个不同URL),并且这些URL大多是不存在的资源(假设大部分请求都是404错误),那么这个IP将被暂时封禁5分钟。
这样就实现了Web服务器防扫描功能。

原文地址:NodeJS后端,用express实现的Web服务器,实现防扫描功能 - web防扫描

关键字:南充网站建设有哪些_即将新款手机上市_河南网站推广多少钱_网站收录提交入口

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: