如何保护$ _GET请求和整个网站

时间:2018-10-08 05:38:23

标签: php security preg-match htmlspecialchars

我有一个名为_check_input的函数。我调用的任何_GET函数都始终解析为我的_check_input函数。这样就足以拥有一个完全安全的.php文件,这样我就不会被黑客入侵了吗?

function _check_input($string) {

    if (!preg_match("/^[A-Za-z0-9]+$/", $string)) {
        echo "ERROR";
        exit();
    } else {
        return htmlspecialchars($string, ENT_QUOTES, 'UTF-8');
    }
}
$input = _check_input($_GET['input']);

我的程序所做的只是将输入与我使用file_get_contents的.json文件进行strcmp。它遍历.json直到找到匹配项。匹配后,它将转到.json中的特定值并打印出来。

PS:我是新程序员

1 个答案:

答案 0 :(得分:1)

根据您的评论,我将添加更多详细信息

  • 是的!很好,但是请确保您将PDObind parameters一起使用 (这仅适用于GET请求字符串)

对于整个网站安全而言,这还不够。您还应该关注Session HijackingCross Site ScriptingFiles(用户上传)

这是带有绑定参数的PDO的示例(有关更多详细信息,请阅读PDO Manual

$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour');
$sth->bindParam(':calories', $calories, PDO::PARAM_INT);
$sth->bindParam(':colour', $colour, PDO::PARAM_STR, 12);
$sth->execute();

关于session hijacking

,这是非常有用的详细信息

对于Cross Site Scripting

以安全方式访问upload files

最后!黑客总是可以找到一种方法来入侵网站。 (这是我的观点和研究)