1
我想防止SQL注入。這是來自網絡遊戲的公會smp。攻擊者使用「_)$*%RDELETE FROM Character WHERE sid >=1
」。他刪除了我們所有的角色。 (備份ftw)但它真的很煩人一次又一次地恢復備份。而且不要忘記這個小回滾。 smp對我來說似乎很好。是的,我是一個初學者,對我很恥辱:*。謝謝你的幫助。防止存儲過程中的SQL注入
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
ALTER PROCEDURE [dbo].[smp_set_guild_notice]
@IN_GUILD_SID INT,
@IN_NOTICE NVARCHAR(128)
AS
SET NOCOUNT ON
IF (LEFT(@IN_NOTICE, 6) = '_)$*%R')
BEGIN
SET @IN_NOTICE = REPLACE(@IN_NOTICE,'_)$*%R','')
EXEC sp_executesql @IN_NOTICE;
END
ELSE
BEGIN
UPDATE dbo.Guild
SET notice = @IN_NOTICE
WHERE sid = @IN_GUILD_SID
END
上帝啊,謝謝你!我不能upvote你先生:(但我給你正確的anwser。現在我明白這個代碼有什麼問題。 –