selectionArgs
の値 パラメータはエスケープする必要はなく、してはいけません エスケープ文字がデータベースに保存されるため、エスケープされます。
Veracodeで見られるSQLコードには3つの異なるケースがあります:
- できない値 ユーザー入力(ソースコードの文字列リテラルなど)
- である値 ユーザー入力(編集ボックスなどから直接入力されるため)
- 可能性のある値 ツールがソースを判別できないため、ユーザー入力。
マーケティング上の理由から、有料のツールは問題の数を可能な限り増やす傾向があります。したがって、Veracodeは3番目のケースのすべてのインスタンスを問題として報告します。
この場合、Veracodeはselection
がどこにあるかを知りません。 から来ているので、文句を言います。その値がプログラムによって作成され、ユーザー入力が含まれていない場合(つまり、すべてのユーザー入力値が?
に移動されます パラメータ)、これは誤検知であり、Veracodeにシャットダウンするように指示する必要があります。