Delphi + ADO + MSSQL について話しています。わかりました。パラメーターを使用したクエリは、SQL インジェクションに対して非常に安全です。一方、動的クエリはまったく安全ではありません。しかし、従来の FieldByName メソッドはどうでしょうか? インジェクションの危険を冒すことなく、絶対に任意の文字列値を FieldByName に安全に割り当てることができますか?
1 に答える
5
安全。Ado は Update/Insert/Delete のパラメータを使用しています。
これは SQLProfile で追跡できます。
exec sp_executesql N'UPDATE "test".."Activity" SET "data"=@P1 WHERE "InvokeTime"=@P2 AND "data"=@P3',N'@P1 float,@P2 datetime,@P3 float',1,'2013-04-24 10:46:22.933',0,48607825089780715
exec sp_executesql N'INSERT INTO "test".."Activity" ("InvokeTime","data") VALUES (@P1,@P2)',N'@P1 datetime,@P2 float','2000-01-01 00:00:00',2
exec sp_executesql N'DELETE FROM "test".."Activity" WHERE "InvokeTime"=@P1 AND "data"=@P2',N'@P1 datetime,@P2 float','2000-01-01 00:00:00',3
于 2013-06-20T09:21:00.987 に答える