1

私は今朝攻撃を受け、私のサイトに 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());
        }
4

3 に答える 3

1

PDO は JavaScript インジェクションから保護しません。SQL インジェクションから保護します。PDO は危険な JS とそうでないものに関係がないため、危険な JS を問題なくデータベースに配置します。それはその仕事ではありません。悪意のある JS がユーザーに表示されないようにする他の方法を見つける必要があります。

于 2012-07-12T18:14:34.180 に答える
1

これは明らかに SQLI からは安全ですが、XSS や汚染された入力からは安全ではありません。これは、攻撃者が SQL クエリを汚染できない可能性があることを意味します。ただし、出力部分が汚染されている可能性があります。出力のエスケープ/サナタイズ方法を確認してください!

于 2012-07-12T18:15:02.760 に答える
1

誰かが SQL クエリを挿入できないという意味では安全ですが、フィールドに HTML を挿入することを止めることはできません。HTML が保存されないようにするためにstrip_tagsなどを使用するか、ユーザーに表示する前に追加のサニタイズを行うことを検討することをお勧めします。

于 2012-07-12T18:15:16.097 に答える