問題が発生しています。これを機能させたいのですが、機能しません:
SqlDataSource.SelectCommand = "SELECT blah1, blah2 FROM myTable WHERE @ColumnName = @Value";
SqlDataSource.SelectParameters.Add("ColumnName", System.Data.DbType.String, "one");
SqlDataSource.SelectParameters.Add("Value", System.Data.DbType.String, "two");
最初のパラメーター "ColumnName" は置き換えられません。そのパラメーターを削除して、列名を次のように配置すると、機能します。
SqlDataSource.SelectCommand = "SELECT blah1, blah2 FROM myTable WHERE one = @Value";
SqlDataSource.SelectParameters.Add("Value", System.Data.DbType.String, "two");
ユーザーが検索する DB 列名を選択できる UI があります。あらゆる種類のインジェクション攻撃から身を守りたい。これを機能させる方法はありますか?
私が読んだアイデアの 1 つは、ルックアップ テーブルを使用して からインデックスを取得し、DropDownList
そのように列名を取得するというものでした。私はそれを機能させることができましたが、可能であればパラメータ化を機能させたいと思っています。
あなたが提供できる助けを前もって感謝します。