我想知道过滤用户提交输入的最佳位置在哪里。关于过滤器,我说的是filter_var和filter_input。
我想出了三个场景:
- 从 POST/GET 过滤数据,并将过滤数据传递给按原样处理的函数。
- 从 POST/GET 获取原始数据,并按原样传递给函数过滤它的函数。
- 从 POST/GET 过滤数据,过滤是函数中的第二次。
这些方法中的每一种都有其优点和缺点。我正在寻找一些可能是最佳或标准做法的见解。
方法 1 将经过清理的数据传递给函数,因此函数可以更小,而不必清理传入的所有内容。缺点是,如果在任何其他地方调用了您的函数并且未清理数据,这可能会导致问题。这只需要良好的编码实践,以记住在传递给函数之前对所有内容进行清理。
方法 2 你永远不必担心你的函数会处理未经处理的数据,但函数会更大。
方法3是最安全的,但是比较浪费。编写了更多代码,并且数据可能会在通过可能的各种功能时被多次清理,从而浪费 CPU 资源和时间。