-1

私は 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)) & "'"

それは陳腐かもしれませんが、私は機能する種類の攻撃を見つけたことがありません.

4

2 に答える 2

0

私はいつも「sqlihelper2.7」(ダウンロードできます)を見つけて、ほとんど/すべてのSQLインジェクションを見つけました。これがまったく役立つかどうかはわかりませんが、少なくともすべてのSQLコメントとすべてをテストするのに役立ちます。私のサイトの1つで、すべてのデータベースデータをダムするためのメインSQLインジェクションが見つかったことを覚えています。それはあなたが探しているものとは正確には異なりますが、それは道を見つけることができるかもしれません。

于 2012-04-15T02:16:31.507 に答える