存储过程中的SQL注入

用户名

我正在尝试通过登录表单对存储过程进行sql注入。这是我的存储过程

CREATE proc [dbo].[sp_ADM_Login] 
    @loginName varchar(25),
    @password varchar(100)
)

AS

select
    l.LoginId,
    l.LoginName,
    l.LoginType,
    l.RG_cCode,
    dbo.GetUserName(l.UserDetailsCode, l.LoginType) as [Name],
    isnull(l.DefBranchId, 0) as BranchId,
l.DefBranchCode as branchCode,
l.LoginCode as loginCode
from   
    ADM_Login l 
where  
    LoginName = @loginName and
    [Password] = @password and
    l.IsActive = 1

我尝试将用户名提供给,user' or 1=1--但不起作用。是否可以在此代码中进行sql注入?

要执行存储过程,这是C#代码

Database db = DatabaseFactory.CreateDatabase("ConnectionString");
    DbCommand cmd = db.GetStoredProcCommand("sp_ADM_Login");
    db.AddInParameter(cmd, "@loginName", DbType.String, loginName);
    db.AddInParameter(cmd, "@password", DbType.String, password);
    DbDataReader dr = (DbDataReader)db.ExecuteReader(cmd);
亚伯是不同的

不,只要您从带有参数的C#代码中调用正确的参数化查询,就不可能进行SQL注入。如果您自己格式化EXEC sp_ADM_login...SQL字符串,则容易受到攻击。

使用C#代码并使用适当的参数,您将完全安全。任何奇怪的值将被正确地转义。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

避免在Azure DocumentDB存储过程中进行SQL注入

来自分类Dev

SQL Server存储过程中的错误

来自分类Dev

SQL存储过程中的错误

来自分类Dev

存储过程中的SQL查询IF语句

来自分类Dev

SQL Server存储过程中的IF条件

来自分类Dev

SQL Server:存储过程中的IF THEN ELSE

来自分类Dev

在存储过程中调用存储过程

来自分类Dev

在SQL Server中的存储过程中读取xml的问题

来自分类Dev

SQL Server中存储过程中的可选参数

来自分类Dev

在SQL中的存储过程中传递列值

来自分类Dev

在SQL Server中的存储过程中读取xml的问题

来自分类Dev

存储过程中的更新

来自分类Dev

存储过程中的交易

来自分类Dev

存储过程中的递归

来自分类Dev

存储过程中的IF条件

来自分类Dev

存储过程中的SUM

来自分类Dev

存储过程中的if语句

来自分类Dev

#TempTable 在存储过程中

来自分类Dev

存储过程中的SQL事务处理

来自分类Dev

从存储过程中的列运行SQL查询

来自分类Dev

SQL Server:IF条件在存储过程中不起作用

来自分类Dev

SQL Server:存储过程中的并发问题

来自分类Dev

做 ; 表示SQL Server存储过程中的任何内容

来自分类Dev

SQL Server存储过程中的多个表类型参数

来自分类Dev

从SQL Server存储过程中检索特定数据

来自分类Dev

如何捕获SQL Server存储过程中的错误?

来自分类Dev

在SQL Server存储过程中插入@tablename

来自分类Dev

存储过程中的动态SQL无法获取所需的结果

来自分类Dev

SQL Server:存储过程中的动态查询