网站被间歇性扫描,IP不断更换,我的应对方法

news/2024/12/16 14:01:51/

文章目录

  • 背景
  • 应对方式
    • 封ip
    • 自动不响应策略
    • 代码
    • 为啥不上其他防护软件呢?

背景

我负责的一个网站,不出名,平时也没多少流量。1天有几百个就不错了。没想到,这么不起眼的网站也有被人盯上的时候。
一天,后台使用人员告诉我网站打开很慢,慢到不能忍。
我就查询日志,看看出什么问题了,不查不知道,一查吓一跳。当天的日志已经记录了好几个文件,正常情况下不可能,网站根本没那么大的访问量。然后打开日志一看,全是某个ip的访问记录。这个ip在不断的更换网址或者参数,很明显在扫描网站。
在这里插入图片描述

应对方式

封ip

立马封禁这个ip。直接在防火墙里屏蔽这个ip,服务器软件也封禁这个ip。效果是立竿见影,马上日志文件就不再膨胀了。访问量也正常了。
本以为对方会消停点,没想到过了大约1个小时。网站又很慢了,我查看日志,发现换了个ip又在扫描。把这个ip又封禁了。

自动不响应策略

只封禁ip不行,他还会换ip。对方也似乎知道我发现他了,扫描没那么频繁了,但是还是在换ip扫描,间歇性的扫描,一秒钟三四次,隔一段时间扫描一次;他在模拟正常的访问。我得想个应对策略。
查看日志,日志里只要访问不存在的url路径就会有错误记录。想到了一个应对策略。用redis记录,只要某个ip访问错误url路径,就把这个ip作为键,值是次数。这样就记录这个ip访问错误的次数。在入口文件里查询当前访问的ip是否有记录,如果次数超过某个值,就直接退出响应。

代码

错误处添加的代码

php">//获取ip
$ip=get_user_ip();
//以ip为键
$inc_key='ip_'.$ip;
$redis = new \Redis();
$redis->connect('127.0.0.1', 7280);
$redis->auth('xxxxxxxxxx');
//记录这个ip访问次数
$redis->incr($inc_key);
$redis->close();

入口文件里添加代码

php">//获取当前ip
$user_ip=get_user_ip();
//以ip为键
$inc_key='ip_'.$user_ip;
$redis = new \Redis();
$redis->connect('127.0.0.1', 7280);
$redis->auth('xxxxxxxxxx');
//获取这个ip访问次数
$ip_num=$redis->get($inc_key);
//如果能取得值,说明曾经访问过错误路径
if($ip_num!==false){//如果访问错误次数大于100,增加这个ip的次数,退出响应。增次数能知道这个ip有多少次错误访问if ($ip_num>100){$redis->incr($inc_key);  $redis->close();  die;}
}
// 关闭Redis连接
$redis->close();

为啥不上其他防护软件呢?

我倒是很想上,加上各种安全防护系统。关键在于花钱,公司不舍得。咱就是个打工的,出问题了就是打工人没做好,要是花钱,老板觉得还养着技术干嘛。


http://www.ppmy.cn/news/1555601.html

相关文章

OpenCV 功能函数介绍

一, 二值化函数 功能: 用于对图像进行二值化处理 参数: cv2.threshold(输入你的图像所对应的灰度图, 阈值:是浮点还是整数取决予图像的数据类型 最大值;高于阈值的像素值, 阈值类型:cv2.THR…

Spring Boot 3.0与Jakarta EE 10的深度解析

随着Java生态的不断演进,Spring Boot和Jakarta EE始终是现代Java开发中的两大核心框架。在2023年,Spring Boot 3.0与Jakarta EE 10的发布标志着Java技术又迈上了一个新的台阶。这篇文章将为您详细解析这些新技术的关键更新,并探讨如何将其应用…

DDR5 中的数据反馈判决均衡(DFE):全面解析与展望

目录 一、引言二、DFE原理三、DFE架构四、实现方案五、测试方法六、DFE效果七、成本与收益八、具体应用九、技术发展趋势十、参考文献 一、引言 DDR5 作为新一代内存标准,其中的数据反馈判决均衡(DFE)技术更是引人注目。DFE即判决反馈均衡&a…

110.【C语言】数据结构之判断是否为完全二叉树

目录 1.知识回顾 2.分析 完全二叉树队列示意图 非完全二叉树队列示意图 区别 3.代码 执行过程 完整代码 运行结果 1.知识回顾 完全二叉树和非完全二叉树参见100.【C语言】数据结构之二叉树的基本知识文章 2.分析 使用层序遍历(队列),核心思想参见109.【C语言】数据结…

ArcGIS教程(007):制作中国行政区划图

文章目录 000:数据准备001:利用地理数据制作中国行政区划图000:数据准备 通过网盘分享的文件:ArcGIS教程(007):中国行政区划图教程练习数据.zip 链接: https://pan.baidu.com/s/1nMiRYD-dbv2S0DoeQzR87g?pwd=3535 提取码: 3535001:利用地理数据制作中国行政区划图 ne_…

【安卓开发】【Android Studio】启动时报错“Unable to access Android SDK add-on list”

一、问题描述 在启动Android Studio时,软件报错:Unable to access Android SDK add-on list,报错截图如下: 二、原因及解决方法 初步推测是由于网络节点延迟,无法接入谷歌导致的。点击Cancel取消即可。

Debezium OracleStreamingChangeEventSourceMetrics 分析

Debezium OracleStreamingChangeEventSourceMetrics 分析 目录 1. 概述2. 核心指标3. 实现分析4. 使用场景5. 监控示例6. 最佳实践7. 总结1. 概述 OracleStreamingChangeEventSourceMetrics 是 Debezium Oracle 连接器中的度量指标收集组件,主要负责: 收集连接器运行时的各…

Linux更改远程默认SSL端口

1、登录Linux服务器 2、编辑ssh服务配置文件:vi /etc/ssh/sshd_config 光标移至“#Port 22”位置,按“i”进入编辑模式,然后键盘按一下回车键,新增一行 Port 2022 编辑好,先按ESC键,再输入:wq 保存退出.&…