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

sql,asp,net,core · 浏览次数 : 0

小编点评

**标题:** 防止SQL注入攻击:技巧与解决方案 **引言:** 在当今的数字化时代,网络安全成为了企业和个人必须面对的重要问题。SQL注入作为一种常见的网络攻击手段,对数据库安全构成了严重威胁。为了提高网站的安全性,本文将介绍一种实用的SQL注入防范方案,并提供相应的代码示例。 **正文:** 一、SQL注入概述 SQL注入是一种危险的代码注入技术,攻击者通过在应用程序的输入字段中插入恶意SQL代码,从而对后端数据库进行非法操作。这些操作可能包括未经授权的数据查看、修改或删除,严重时甚至可能导致整个数据库系统的崩溃。 二、常见SQL注入手法 1. 基于注释的注入 2. 基于一般错误的注入 3. 基于时间的注入 4. 联合查询注入 5. 身份认证绕过 三、网站请求注入类型 1. 普通的GET请求 2. 表单POST提交 3. JSON格式POST提交 四、防SQL注入方案 1. 使用带参数的SQL语句 2. 使用存储过程 3. 反向代理穿反SQL注入外套 五、代码示例 1. 使用ToolGood.SQLFirewall 1. 在main方法中引入 nuget 包:`ToolGood.SQLFirewall` 2. 使用ServerHeader和MsSQL作为中间件: ``` app.UseSQLFirewall_ServerHeader("ToolGood"); app.UseSQLFirewall(SQLFirewallType.MsSQL); ``` 3. 使用URL白名单进行配置: ``` app.UseSQLFirewall(SQLFirewallType.MsSQL, "/Admins/Logs/Ajax/GetLoginList", "/Admins/User/Ajax/*"); ``` 2. 反向代理穿反SQL注入外套 1. 通过配置反向代理,将SQL注入攻击的请求直接转发到防SQL注入服务。 2. 保证服务端接口的安全性,防止攻击者利用服务端的漏洞进行注入攻击。 六、结语 通过采取上述措施,可以有效地防止SQL注入攻击,保护网站和数据库的安全。同时,定期对系统进行安全检查和更新,以及提高开发者的安全意识,也是防范SQL注入不可或缺的手段。 **参考资料:** - [ToolGood.SQLFirewall GitHub](https://github.com/toolgood/ToolGood.SQLFirewall) - [SQL注入攻击示例](https://github.com/payloadbox/sql-injection-payload-list) - [反向代理防SQL注入](https://github.com/toolgood/ToolGood.Navigation)

正文

现在公安有一个专门负责信息安全的部门,前几天公司就收到了一个整改通知,防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

 

与开源一个反sql注入的asp.net core中间件相似的内容:

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

现在公安有一个专门负责信息安全的部门,前几天公司就收到了一个整改通知,防sql注入的整改。 我们公司开始对网站进行了简单的测试,普通的sql都能检测出来。 但还是被发了整改通知,肯定有些sql注入的方法没测出来,于是我就开始查找了sql注入的手法。 sql注入主要有:基于注释、基于一般错误、基于时间

MySQL入门到实战详细教程

MySQL介绍 MySQL是一个开源的关系型数据库管理系统(RDBMS),由瑞典 MySQL AB 公司开发,属于 Oracle 旗下产品,它广泛应用于各种Web应用程序和网站,MySQL使用结构化查询语言(SQL)进行数据的管理和操作。 MySQL主要特点 开源免费:MySQL是一个开源项目,可以

18.9k star!一个高性能的嵌入式分析型数据库,主要用于数据分析和数据处理任务。

大家好,今天给大家分享的是一个开源的面向列的关系数据库管理系统(RDBMS)。 DuckDB是一个嵌入式的分析型数据库,它提供了高性能的数据分析和数据处理能力。DuckDB的设计目标是为数据科学家、分析师和数据工程师提供一个快速、灵活且易于使用的数据分析工具。它支持SQL查询语言,并提供了一系列高级

.NET开源免费功能最全的商城项目

前言 今天给大家推荐一个功能丰富、免费、灵活且可定制的开源电子商务解决方案:nopCommerce。大家假如有商城需求可以直接使用该项目进行二次开发,省时省力。 项目介绍 nopCommerce在.NET 7上运行,并使用MS SQL 2012(或更高版本)后端数据库。 nopCommerce是跨平

Metabase 安装和使用教程

Metabase 是一款开源的数据分析和商业智能工具,允许企业用户在几分钟内搭建起一个功能完善的数据探索和数据分析平台,不需要编写复杂的 SQL 查询语句或者使用专业的数据可视化工具,就可以轻松地探索数据、创建图表、构建仪表盘,从而洞察业务趋势,回答关键问题。 Metabase 还有一个比较独特的地

[转帖]一个小操作,SQL 查询速度翻了 1000 倍

https://tidb.net/book/tidb-monthly/2022/2022-04/usercase/sql-1000 背景介绍​ 某一天早上来到公司,接到业务同学反馈,线上某个SQL之前查询速度很快,从某个时间点开始查询速度突然变慢了,希望DBA帮忙查看下。业务同学反馈的原话如下: ​

慢SQL原因分析之索引失效

现象 最近收到一个慢sql工单,慢sql大概是这样:“select xxx from tabel where type = 1”。 咦,type字段明明有索引啊,为啥是慢sql呢? 原因 通过执行explain,发现实际上数据库执行了全表扫描,从而被系统判定为慢sql。这时有一定开发经验的同事会说:

小知识:SQL Monitor Report的使用

在上一篇 优化利器In-Memory开启和效果 中,提到的两个SQL对比,使用的是传统的dbms_xplan.display_cursor方式来查看执行计划,好处是文本输出的通用性强,基本信息也都有。 但如果大家参加过我们的RWP培训,就会发现O原厂强烈推荐大家使用的一个工具是 SQL Monito

当 SQL Server(mssql-jdbc) 遇上 BigDecimal → 精度丢失,真坑!

开心一刻 中午和哥们一起喝茶 哥们说道:晚上喝酒去啊 我:不去,我女朋友过生日 哥们瞪大眼睛看着我:你有病吧,充气的过什么生日 我生气到:有特么生产日期的好吧 需求背景 系统对接了外部系统,调用外部系统的接口需要付费,一个接口一次调用付费 0.03 元 同一个月内,同一个接口最高付费 25 元 统计

面试必会 --> MyBatis篇

什么是MyBatis Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。程序员直接编写原生态sql,可以严格控制sql执行性能,灵活度高。 MyBatis 可以使用 XM