PDO and security


PDO and security

我今天早上遭到攻击,在我的网站中注入了一些JS。我正在努力找出漏洞并修补它。我觉得下面的PDO是安全的,有人能证实还是否认这一点?

        //Adding the lead to the local database
        $leads = array($firstName, $lastName, $company, $state, $country, $phone, $email, $industry, $uniqueId, $comments );
        $qry = $dbh->prepare(
            'INSERT INTO leads (FirstName, LastName, Company, State, Country, Phone, Email, Industry, Solution, Comments) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)');
        if(!($qry->execute($leads))) {
            print_r($dbh->errorInfo());
        }

这是安全的,因为有些人将无法注入SQL查询,但这不会阻止他们将HTML放入您的任何字段。您可能需要考虑使用strip_tag之类的东西来防止HTML被存储,或者在向用户显示之前进行一些额外的清理。

PDO不能保护您免受JavaScript注入的影响。它可以保护您免受SQL注入的影响。它会毫无问题地将危险的JS放入数据库,因为PDO并不关心什么是危险的JS,什么不是危险的JS。这不是它的工作。您需要找到其他方法来防止恶意JS显示给用户。

这显然对SQLI是安全的,但对XSS或受污染的输入不是安全的。这只是意味着攻击者可能无法破坏您的SQL查询。但输出部分可能会受到污染。检查您的输出逃离/疗养方法!