1

これは奇妙に聞こえるかもしれませんが、問題を確実に回避できます。サーバー側コードで SQL を使用していますが、ステートメントは次のようになります。

SELECT myCol FROM mytable WHERE myCol2=url_parameter

url_parameterURL を介して渡される文字列です。何かに設定url_parameterする方法はありますが、それでもテーブル内のすべての事実を取得できますか?

4

2 に答える 2

1

これを処理する通常の方法は、次のようなクエリを使用することです。

SELECT myCol
FROM mytable
WHERE myCol2 = url_parameter OR url_parameter IS NULL;  -- or url_parameter = '';

パラメータを渡す代わりに SQL 文字列を書き換える場合は、myCol2すべての値を取得したいときに (引用符なしで) 値を挿入できます。ただし、パラメーターを使用する必要があります。

于 2016-11-18T22:04:47.043 に答える
1

あってはならない。存在する場合、サーバー側は SQL インジェクション攻撃を可能にするように記述されています。これは、解決したい問題よりも大きな問題である可能性があります。

サーバー側のコードを変更できる場合は、WHERE 条件を持たないクエリのバリエーションを実行することで、パラメーター値またはパラメーター値の組み合わせに応答させることができます。または、他のオプションがあります...しかし、あなたはすでにそれを回避できると言っているので、それらのアイデアの1つを念頭に置いていると思います.

于 2016-11-18T21:53:29.283 に答える