0

重複の可能性:
PHP で SQL インジェクションを防ぐ方法は?

コードに SQLI のようなハックがあるかどうかを知りたい

function insertRow($table,$fields,$values)
    {
        if(count($fields) != count($values))
        {
            echo "fields and values must be the same count";
            return null;
        }
        $query = "INSERT INTO ".$table." SET ";
        foreach($fields as $key => $field)
        {
            $query = $query. "" . $field . " = '" . htmlspecialchars($values[$key], ENT_QUOTES) . "', ";
        }
        $query = substr($query,0,-2);

        if (!mysql_query($query, $this->con))
        {
            echo "Error : " . mysql_error($this->con)."<br />";
            return false;
        }
        return true;
    }

htmlspecialchars を使用していますが、問題ないか知りたいです

編集 :

$fields = array("a","b","c");
$values = array($_POST["a"],$_POST["b"],$_POST["c"]);
$a = $dbc->insertRow("tbl_synagoge",$fields,$values);
4

1 に答える 1

3

htmlspecialchars()使用する代わりにmysql_real_escape_string()

これにより、コードがより安全になります。

ただし、廃止されたため、すべての mysql_* 関数を廃止することをお勧めします。ここからすぐに始めることができます: MySQLi

于 2012-12-29T03:00:34.137 に答える