4

ユーザーが送信した入力をフィルタリングするのに最適な場所はどこかと思います。フィルタに関しては、filter_varfilter_inputについて話しています。

私は3つのシナリオを考え出しました:

  1. POST / GETからデータをフィルター処理し、フィルターデータをそのまま関数に渡します。
  2. POST / GETから生データを取得し、関数がフィルター処理する関数にそのまま渡します。
  3. POST / GETからデータをフィルター処理します。フィルター処理は、関数で2回目です。

これらの方法にはそれぞれ長所と短所があります。私は、どちらが最良または標準的な実践であるかについての洞察を探していました。

方法1は、サニタイズされたデータを関数に渡すため、入ってくるすべてのものをサニタイズする必要がなく、関数を小さくすることができます。関数が呼び出され、データがサニタイズされていない他の場所があると、問題が発生する可能性があります。これには、関数に渡す前にすべてをサニタイズすることを忘れないようにするための優れたコーディング方法が必要です。

方法2は、サニタイズされていないデータを処理する関数について心配する必要はありませんが、関数は大きくなります。

方法3が最も安全ですが、無駄です。より多くのコードが記述され、データがさまざまな機能を通過するときにデータが複数回サニタイズされ、CPUリソースと時間が無駄になる可能性があります。

4

4 に答える 4

3

間違ったコードを間違って見えるようにする限り、すべてのメソッドは有効なものだと思います。

于 2012-04-05T17:44:49.430 に答える
0

あなたが言ったように、最良の方法は、それを使用する前に、getまたはpostを介して入力から送信されたデータをフィルタリングすることです

于 2012-04-05T17:45:19.070 に答える
0

コードを再利用できるように、関数を使用してそれらをフィルタリングするのが最善のオプションだと思います。そのためのクラスを作成し、幸せになります;)

于 2012-04-05T17:48:28.957 に答える
0

上記のシナリオから、1 と 2 はグッド プラクティスに適用できます。リソースを浪費すると言ったように、3番目は入力データを2回フィルタリングする必要はありません。

したがって、シナリオ 1 または 2。それはあなたが扱っている状況によって異なります。

于 2012-04-05T18:04:22.227 に答える