Net8 限制固定IP访问(防黑客)
十年河东,十年河西,莫欺少年穷
学无止境,精益求精
近期一直再和黑客斗智斗勇,怎么说呢
刚开始,黑客通过ddos攻击我司服务器,因此,我在项目中增加了限流中间件
后来,黑客通过SQL注入攻击,攻击我司服务器,我全部参数化,或者关键字检测
再后来,黑客转向了我司服务器3389端口 和 22端口在云后台修改为固定IP访问的模式
再后来,我发现黑客还是一直在攻击我司服务器,我决定写一个日志记录中间件,记录黑客攻击的内容及方式,如下:


通过总结,发现,黑客一直在使用同一个IP在攻击我司服务器
解决方法如下:
中间件
using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Logging; using System.Configuration; using System.Linq; using System.Net; using System.Net.Http; using System.Threading.Tasks; namespace swapAlipay.Middlewares { public class UnSafeListMiddleware { private readonly RequestDelegate _next; private readonly ILogger<UnSafeListMiddleware> _logger; private string Unsafelist { get; set; } public UnSafeListMiddleware( RequestDelegate next, ILogger<UnSafeListMiddleware> logger, string Unsafelist) { _next = next; _logger = logger; this.Unsafelist = Unsafelist; } public async Task Invoke(HttpContext context) { if (context.Request.Method != HttpMethod.Get.Method) { var remoteIp = context.Connection.RemoteIpAddress?.ToString(); var ips = Unsafelist.Split(';'); var badIp = false; foreach (var address in ips) { if (!string.IsNullOrEmpty(address)) { if (address == remoteIp) { badIp = true; break; } } } if (badIp) { _logger.LogError( "Forbidden Request from Remote IP address: {RemoteIp}", remoteIp); context.Response.StatusCode = (int)HttpStatusCode.Forbidden; return; } } await _next.Invoke(context); } } }
注册中间件

配置文件:

其他相关:
Net8 根据IP,客户端限流(防ddos攻击),及记录SQL注入攻击日志

浙公网安备 33010602011771号