如何防止SQL注入?(存储过程,参数化都用到了!)

niunan niunan 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
发现存储过程中如果是用到了SQL拼接的话那即使前台使用param参数化的话也会造成SQL注入的!
下面是我存储过程的内容:

-- =============================================
-- Author: 牛腩
-- Create date: 2008-11-17 14:38
-- Description: 添加类别,测试存储过程是否有SQL注入危险
-- =============================================
ALTER PROCEDURE [dbo].[category_insert]
@name varchar(100)
AS
BEGIN
declare @sql varchar(1000)
set @sql = 'insert into category(name) values('''+@name+''')'
exec (@sql)
END

下面是前台ASPX页面的代码片段:

string connStr = @"server=niunan\sqlexpress; database=newssystem; uid=sa; pwd=123456";
SqlConnection conn = new SqlConnection(connStr);
conn.Open();
SqlCommand cmd = new SqlCommand("category_insert", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@name", "bbb');delete category where id=14--"));
int i = cmd.ExecuteNonQuery();
conn.Close();
Response.Write(i);

其中id为14的记录在数据表里是存在的,输出的结果是2,我再查询一下数据库,发现原来id为14的记录没有了,请问我们应该怎么防止这样的SQL注入呢?因为在很多地方用到分页,而分页我都是写在一个分页存储过程里的,而这个分页存储过程又是用SQL拼接而成的,这样子就会有SQL注入的危险了!!!请问应该怎么解决?
...全文

相关推荐

SQL参数化(防止SQL注入)

在ASP.NET开发中,用SQL语句拼执行字符串,如果不参数换传递,有可能会被恶意破坏。

yongit

掌握C#参数化查询:防止SQL注入

SQL注入攻击是一种常见的网络攻击技术,攻击者通过在应用程序的输入字段中插入恶意的SQL代码,利用应用程序对用户输入处理不当,执行未授权的数据库操作。攻击目标通常是Web应用程序,旨在破坏、篡改或窃取数据库中的数据。SQL注入攻击是一种常见的网络攻击手段,它通过在SQL语句中注入恶意SQL代码,对数据库进行未授权的操作。攻击者可能会利用输入字段或者URL参数注入恶意的SQL片段,例如登录表单中用户提交的用户名和密码,如果直接拼接成SQL语句执行,攻击者便可以通过输入类似的语句,绕过登录验证。

澾慟

SQL注入原理以及Spring Boot如何防止SQL注入(含详细示例代码)

SQL注入是一种针对数据库的攻击技术,攻击者通过在应用程序的输入字段中插入或“注入”恶意的SQL代码,从而在数据库服务器上执行非授权的SQL查询。这种攻击可能导致数据泄露、数据篡改、甚至执行任意命令。 SQL注入的原理是攻击者通过在应用程序的输入字段中插入或“注入”恶意的SQL代码,从而绕过应用程序的安全机制,直接对数据库进行查询或操作。当应用程序没有对用户输入进行适当的验证和过滤时,攻击者可以注入恶意的SQL代码,导致应用程序执行非预期的数据库操作。 具体来说,当应用程序使用动态SQL语句构建查询时,它会将用户输入直接拼接到SQL语句中。如果应用程序没有对用户输入进行适当的验证和过滤,攻击者可以注入恶意的SQL代码片段,改变原始SQL语句的结构和意图。通过注入恶意的SQL代码,攻击者可以绕过应用程序的身份验证、读取敏感数据、修改数据、执行任意命令等。

孤蓬&听雨

有效防止SQL注入的5种方法总结

SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编程时的疏忽,通过SQL语句,实现无帐号登录,甚至篡改数据库。下面这篇文章主要给大家介绍了关于防止SQL注入的5种方法,教大家有效的防止sql注入,需要的朋友可以参考学习。

weixin_38711149

mybatis防止SQL注入的方法实例详解

SQL注入是一种很简单的攻击手段,但直到今天仍然十分常见。那么mybatis是如何防止SQL注入的呢?下面脚本之家小编给大家带来了实例代码,需要的朋友参考下吧

weixin_38523251
评论 37
收藏 已收藏
分享
返回顶部
niunan
.NET社区 62,271 成员 668,968 内容