4

我想知道过滤用户提交输入的最佳位置在哪里。关于过滤器,我说的是filter_varfilter_input

我想出了三个场景:

  1. 从 POST/GET 过滤数据,并将过滤数据传递给按原样处理的函数。
  2. 从 POST/GET 获取原始数据,并按原样传递给函数过滤它的函数。
  3. 从 POST/GET 过滤数据,过滤是函数中的第二次。

这些方法中的每一种都有其优点和缺点。我正在寻找一些可能是最佳或标准做法的见解。

方法 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 没有必要像您所说的那样过滤输入数据两次,这会浪费资源。

因此,情景 1 或 2;这取决于您要处理的情况。

于 2012-04-05T18:04:22.227 回答