toolgood

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  26 随笔 :: 0 文章 :: 59 评论 :: 54533 阅读
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

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

 

posted on   ToolGood  阅读(852)  评论(10编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
点击右上角即可分享
微信分享提示