-2

假设这段代码是在按下提交按钮后执行的,目的是为了清理:

<?php
$yourname = check_input(filter_input(INPUT_POST, 'yourname', FILTER_SANITIZE_STRING));
$email = check_input(filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL));
$likeit = check_input(filter_input(INPUT_POST, 'likeit', FILTER_SANITIZE_STRING));
$comments = check_input(filter_input(INPUT_POST, 'comments', FILTER_SANITIZE_STRING));

function check_input($data) {
    $data = trim($data) . stripslashes($data) . htmlspecialchars($data);
    return $data;
}
?>

考虑到正在应用 filter_input 函数,在这种情况下 check_input($data) 函数是多余的吗?

4

1 回答 1

3

check_input函数的当前代码非常无用:您将输入返回连接 3 次,但应用了不同的过滤器

function check_input($data) {
    $data = trim($data) . stripslashes($data) . htmlspecialchars($data);
    return $data;
}

关于filter_input():使用FILTER_SANITIZE_STRING应该足够了。从文档中:

剥离标签,可选择剥离或编码特殊字符。

这基本上是您对自己的功能的意图。


不要忘记提防 SQL 注入攻击。按预期使用准备好的语句将使您保持安全。

于 2018-03-03T18:51:37.893 回答