我尝试为POST输入创建通用的消毒解决方案,因为我非常偏执。我想基于参数清理POST数组中的每个值,但是当没有定义arg的键时,使用一些通用过滤器类型(例如FILTER_SANITIZE_STRING)。到目前为止,我使用这个简单的循环(PHP 7)和filter_input函数:
$args = array(
'user_id' => FILTER_SANITIZE_NUMBER_INT,
'email' => FILTER_SANITIZE_EMAIL,
...
);
$clean = array();
foreach ($_POST as $key => $value) {
$clean[$key] = filter_input(INPUT_POST, $key, $args[$key] ?? FILTER_SANITIZE_STRING);
}
我不确定这个解决方案是否足够好'我想知道我是否可以为函数filter_input_array(INPUT_POST, $args);
设置默认过滤器类型,因为POST有时可以包含数组?