首页 > 数据库 >开源一个反sql注入的asp.net core中间件

开源一个反sql注入的asp.net core中间件

时间:2024-06-22 10:20:43浏览次数:23  
标签:core asp ToolGood SQLFirewall 中间件 sql UseSQLFirewall 注入

现在公安有一个专门负责信息安全的部门,前几天公司就收到了一个整改通知,防sql注入的整改。

 

我们公司开始对网站进行了简单的测试,普通的sql都能检测出来。

但还是被发了整改通知,肯定有些sql注入的方法没测出来,于是我就开始查找了sql注入的手法。

sql注入主要有:基于注释、基于一般错误、基于时间、联合查询、身份认证绕过。

网站常用请求注入有三种:普通的GET请求、表单POST提交,json格式POST提交。

 

经几天的努力,将防sql功能做出来了,并且做成了一个中间件。

使用nuget ,项目引用 ToolGood.SQLFirewall

在main方法中使用
            app.UseSQLFirewall_ServerHeader("ToolGood"); //替换头信息,减少服务器信息
            app.UseSQLFirewall(SQLFirewallType.MsSQL);   //使用防sql注入

忽略部分url检测,代码如下
            app.UseSQLFirewall(SQLFirewallType.MsSQL, "/Admins/Logs/Ajax/GetLoginList", "/Admins/User/Ajax/*");

注:星号为通配符,放在路径最后一位有效。

 

代码:https://github.com/toolgood/ToolGood.SQLFirewall

参考:https://github.com/payloadbox/sql-injection-payload-list

====================================================================================================

防sql注入有两个简单的方法,使用带参数的sql语句和使用存储过程。

但老项目不一定按这个逻辑来,可使用参考反向代理,穿一件反sql注入外套。

代码:https://github.com/toolgood/ToolGood.SQLFirewall/tree/main/ToolGood.Navigation

 

标签:core,asp,ToolGood,SQLFirewall,中间件,sql,UseSQLFirewall,注入
From: https://www.cnblogs.com/toolgood/p/18261896

相关文章

  • 消息队列kafka中间件详解:案例解析(第10天)
    系列文章目录1-消息队列(熟悉)2-Kafka的基本介绍(掌握架构,其他了解)3-Kafka的相关使用(掌握kafka常用shell命令)4-Kafka的PythonAPI的操作(熟悉)文章目录系列文章目录前言一、消息队列(熟悉)1、产生背景2、消息队列介绍2.1常见的消息队列产品2.2应用场景2.3消息队列中两......
  • Asp.Net Core 中的“虚拟目录”
    原文链接:https://blog.csdn.net/sD7O95O/article/details/107587430现在部署Asp.NetCore应用已经不再限制于Windows的IIS上,更多的是Docker容器、各种反向代理来部署。也有少部分用IIS部署的,IIS部署确实是又快又简单,图形化操作三下五除二就可以发布好一个系统了。在过去Asp.NetM......
  • Asp.Net Core 获取应用程序相关目录
    原文链接:https://blog.csdn.net/hefeng_aspnet/article/details/135859719在ASP.NETCore中,可以通过以下三种方式获取应用程序所在目录:1、使用`AppContext.BaseDirectory`属性:  stringappDirectory=AppContext.BaseDirectory;例如:D:\后端项目\testCore\test.WebApi\bin\D......
  • .NET Core的文件系统[3]:由PhysicalFileProvider构建的物理文件系统
    原文链接:https://blog.csdn.net/weixin_33795833/article/details/90324791ASP.NETCore应用中使用得最多的还是具体的物理文件,比如配置文件、View文件以及网页上的静态文件,物理文件系统的抽象通过PhysicalFileProvider这个FileProvider来实现,该类型定义在NuGet包“Microsoft.Ext......
  • C# 之 .net core -- 创建项目
    原文链接:https://www.cnblogs.com/hkzw/p/12001420.html一、新建一个Web的应用程序 二、选择项目的基本信息(.netcoer2.2 和带有试图控制器的程序)在这里创建的是MVC模式,也可以用其他的,比如空的、web应用程序。跟平常开的的那种表面上差别不大,总之需要什么选什么 ......
  • Windows的Gitlab Runner搭配的PowerShell脚本:发布传统ASP.NET Web应用程序
    简介GitlabRunner在Windows上运行之后,我们在.gitlab-ci.yml中编写script语句,思路和Linux是一样。但是考虑到Windows的特点,为了让程序员少接触一些知识点,以及给未来执行作业的时候预留更多的操作空间。简单说就是未来修改执行作业时候的逻辑,但是每个软件仓库根目录下的.gitlab-ci......
  • ef core自定义默认的迁移表的名称
    efcore自定义默认的迁移表的名称usingMicrosoft.EntityFrameworkCore;usingMicrosoft.EntityFrameworkCore.Design;namespaceLong.EntityFrameworkCore;classMyDesignTimeDbContextFactory:IDesignTimeDbContextFactory<ApplicationDbContext>{publicApplicat......
  • 【Java】如何根据应用场景选择合适的消息中间件?
    一、问题解析21.1消息中间件的应用场景消息中间件的应用场景主要有两个:异步解耦与削峰填谷。我们首先通过电商平台用户注册送积分、送优惠券这个场景来理解异步解耦合。如果不使用消息中间件,电商平台送积分的实现也许是下图这个样子:我们简单看一下这个流程。用户在网站......
  • .netcore 部署docker
    1.代码中新建一个dockerfile容器文件。下面是容器代码,9527是容器的端口。FROMmcr.microsoft.com/dotnet/aspnet:3.1ASbaseWORKDIR/appEXPOSE9527COPY..ENTRYPOINT["dotnet","myapidemo.dll"]2.代码中program.cs需要处理一下端口。 新建个json文......
  • 在Linux中,什么是中间件?什么是jdk?
    在计算机科学中,中间件(Middleware)和Java开发工具包(JDK)是两个不同的概念,它们在软件开发和运行环境中扮演着不同的角色。1.中间件(Middleware)中间件是位于客户端和服务器之间的软件层,它提供了通信和数据管理的服务。中间件使得不同的应用程序能够通过标准的通信协议进行交互,而不必......