私が構築したフレームワークにより、アプリケーション コーダーは (必要なときに) SQL を動的に作成できます。ツールを正しく使用すると、次の 2 つの手順に進みます。 1. 「?」を使用して SQL (PreparedStatement) を構築します 2. ユーザーが入力したすべてのデータをパラメーターとして PreparedStatement に渡します。
これは、SQL インジェクションを回避するために、PreparedStatement と params を使用する通常の手段です。特別なことは何もありません。
しかし、追加の手順を実行したいと思います。コーダーが正しく「パラメーター化」されていることを確認したいのです。もし可能であるとすれば、それはどのような意味で可能ですか?「?」が含まれるすべての場所を構文的に判別できますか? SQLに表示する必要がありますか?そのようなツールはすでに存在しますか?
編集:例:
a='user-data' および b=? の x から blah を選択します。
ここで、a はパラメーター化されていませんが、b はパラメーター化されています。「a」の種類の不正な SQL を検出したいと考えています。それは理にかなっていますか?