SQL インジェクションを防ぐために、ストアド プロシージャの入力をパラメータ化したいと考えています。問題は、私のデータベースにアプリケーションがないことです(これは学校用です)。C#などのクライアント言語がないため、SQL自体で行う必要があります。これは私がしました
ALTER procedure [dbo].[drop_tt]
@ss varchar(40)
as
EXEC sp_executesql N'SELECT *
FROM tt
whERE ss = @Ss', N'@ss varchar(40)', @ss
しかし、このステートメントを実行すると、tt テーブルが削除されました :( exec drop_tt 'www';drop table tt--'
誰でも助けることができますか?