1

このストアド プロシージャは、ユーザー名とパスワードをチェックし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 インジェクション手法が機能することはわかっています。

注: 入力はフロント エンドを介して渡されます。

私の質問を言い換えれば

誰でもこのクエリにインジェクションを実行できますか? はいの場合、どのように?

4

3 に答える 3