このストアド プロシージャは、ユーザー名とパスワードをチェックし1
、資格情報が else と一致するかどうかを返します0
。
CREATE PROCEDURE usp_CheckPermisssions
@UserName NVARCHAR(50),
@Password NVARCHAR(50)
AS
BEGIN
SET NOCOUNT ON;
IF EXISTS( SELECT 1 FROM dbo.Users WHERE Username=@username and Password=@password)
RETURN 1
ELSE
RETURN 0
END
GO
これは単なるサンプル ストアド プロシージャです。コードが挿入されないようにするための SQL インジェクション手法について学びたいだけです。
入力がフロントエンドでサニタイズされていないと仮定します。
ストアド プロシージャで動的クエリを使用している場合、またはフロント エンドで定義済みクエリを使用している場合、SQL インジェクション手法が機能することはわかっています。
注: 入力はフロント エンドを介して渡されます。
私の質問を言い換えれば
誰でもこのクエリにインジェクションを実行できますか? はいの場合、どのように?