以下では、ASP で SQL インジェクション攻撃を防ぐ別の方法を紹介します。この方法は ASP だけでなく、正確には、ADO オブジェクト モデルを使用してデータベースと対話するあらゆる言語で使用できます。 SQL インジェクションを防ぐには、ADO ベースのオブジェクト モデルのアプローチの方が適切である可能性があります。さて、早速、コードを見てみましょう
Dim conn,cmd,pra
set conn=server.createobject("adodb.connection")
conn.Open "…………" 'ここではデータベース接続単語は省略されています
set cmd=server.createobject("adodb.Command")
set pra=server.createobject("adodb.Parameter")
cmd.ActiveConnection = conn
cmd.CommandText = 「更新ニュース set title=? where id =?」 )
cmd.Parameters.Append pra
Set pra = cmd.CreateParameter("id", adInteger, adParamInput, , 10)
cmd.Parameters.Append pra
cmd .Execute
ニュース テーブルの id フィールドは Integer 型で、title フィールドは nvarchar(50) 型です。実行の結果、タイトル フィールドの内容が変更されます。ニューステーブルの ID フィールドが 10 のレコードを「1'2'3」に