pro*_*011 4 c# sql asp.net sql-server-2005
我是SQL Server的新手,我正在尝试使用存储过程将记录插入表中,如下所示.
我想要一个使用以下存储过程的建议.也:
如果我错过了下面的过程导致SQL注入,请纠正我.
Create PROCEDURE [dbo].[spInsertParamTable]
@CmpyCode nvarchar(50),
@Code nvarchar(50),
@DisplayCode nvarchar(50),
@TotalDigit int,
@Nos bigint,
@IdentitY int OUTPUT
AS
BEGIN
INSERT tblParamTable (CmpyCode, Code, DisplayCode, TotalDigit, Nos)
VALUES (@CmpyCode, @Code, @DisplayCode, @TotalDigit, @Nos)
END
SELECT @Identity = SCOPE_IDENTITY();
RETURN @Identity
Run Code Online (Sandbox Code Playgroud)
SQL注入专门指将SQL代码注入现有的SQL查询,该查询通过字符串连接构建并动态执行.它几乎总是以下形式:
@dynamicSQL = "select * from sensitivetable where field = " + @injectableParameter
sp_executesql @dynamicSQL
Run Code Online (Sandbox Code Playgroud)
对于这个特定的存储过程,攻击者可以做的最糟糕的事情是将无用的值插入到tblParamTable中.
但是,如果稍后在动态构建的查询中使用这些值,那么这仅仅会成为二阶攻击:在第1页上插入值,请参阅第2页上的动态查询结果.(我只提到这个,因为你的表被命名为tblParamTable,建议它可能包含以供以后重用的参数.)
| 归档时间: |
|
| 查看次数: |
1521 次 |
| 最近记录: |