私は Web アプリケーション開発者で、Classic ASP をサーバー サイド スクリプトとして使用しています。
私は常に、単純な関数を使用して文字列パラメーターのシングル アポストロフィを 2 つにすることで、アプリを SQL インジェクションから保護しています。
Function ForSQL(strString)
ForSQL = Replace(strString, "'", "''")
End Function
数値パラメーターについては、CInt、CLng、および CDbl 関数を使用します。
私はよく連結クエリを書きます。私は常にストアド プロシージャを使用しているわけではなく、常にユーザー入力を検証しているわけでもありません。
誰かがこのコード行に対する実際の攻撃を見せてくれるかどうか尋ねたいです:
strSQL = "SELECT Id FROM tUsers WHERE Username='" & _
ForSQL(Left(Request.Form("Username"),20)) & "' AND Password='" & _
ForSQL(Left(Request.Form("Username"),20)) & "'"
それは陳腐かもしれませんが、私は機能する種類の攻撃を見つけたことがありません.