Net8 限制固定IP访问(防黑客)

十年河东,十年河西,莫欺少年穷

学无止境,精益求精

近期一直再和黑客斗智斗勇,怎么说呢

刚开始,黑客通过ddos攻击我司服务器,因此,我在项目中增加了限流中间件

后来,黑客通过SQL注入攻击,攻击我司服务器,我全部参数化,或者关键字检测

再后来,黑客转向了我司服务器3389端口 和 22端口在云后台修改为固定IP访问的模式

再后来,我发现黑客还是一直在攻击我司服务器,我决定写一个日志记录中间件,记录黑客攻击的内容及方式,如下:

image

image

 通过总结,发现,黑客一直在使用同一个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);
        }
    }
}
View Code

注册中间件

image

 配置文件:

image

 其他相关:

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

 

posted @ 2025-09-02 17:57  天才卧龙  阅读(13)  评论(0)    收藏  举报