说明:
存储过程可以防止SQL注入漏洞的威胁,也会很安全。该存储过程包含输入参数和输出参数,输入参数有用户ID和密码,返回值表示出不同的结果。
ALTER PROCEDURE [dbo].[Logining](
@in_id varchar(10),
@in_password varchar(10),
@out_parameter varchar(10) output
)
/**
@in_id 传入参数 ID
@in_password 传入参数 密码
@out_parameter 传出参数 0成功/1密码错误/2当前状态不可用或者其他原因
*/
AS
declare @temp_password varchar(10);
declare @temp_status varchar(10);
declare @temp_blog varchar(10);
declare @temp_event varchar(100);
declare @temp_count int;
select @temp_count=COUNT(*) from Users where ID=@in_id;
select @temp_password= password from Users where ID=@in_id;
select @temp_status= status from Users where ID=@in_id;
set @temp_event='登录系统客户端';
--验证密码是否正确
if(@temp_count<1)
set @out_parameter=3;
else
begin
if(@temp_password=@in_password)
begin
--验证状态是否可用
if(@temp_status=1)
begin
set @out_parameter=0;
exec WriteBlog @in_id,@temp_event,@temp_blog output;
end
else
begin
set @out_parameter=2;
end
end
else
set @out_parameter=1;
end
本文探讨了如何利用存储过程防止SQL注入攻击,并详细解释了一个包含用户ID、密码输入及输出不同结果的存储过程实现。
1849

被折叠的 条评论
为什么被折叠?



