php - injection - pdo real escape string



mysql_real_escape_string mit Zend (3)

Sie können die von Zend_Db bereitgestellte quote() -Funktion Zend_Db :

http://framework.zend.com/manual/en/zend.db.adapter.html#zend.db.adapter.quoting.quote

Ich entwickle eine Webanwendung mit Zend Framework. Für ausgewählte Aussagen habe ich folgenden Weg genommen.

Ex:

public function getData($name)
{
  $sql = "SELECT * from customer where Customer_Name = '$name'";
  return $this->objDB->getAdapter()->fetchAll ($sql);
}

Das funktioniert gut. Aber wenn ich Kundenname wie: colvin's place , scheitert die Abfrage. Und ich weiß, dass es wegen des einfachen Zitats ist.

Früher habe ich die PHP-Funktion von addslashes verwendet. Aber ich habe gesehen, dass das kein guter Weg ist. Diesmal habe ich die PHP-Funktion mysql_real_escape_string .

Das Problem ist die folgende Warnung.

Warning</b>: mysql_real_escape_string() [<a href='function.mysql-real-escape-string'>function.mysql-real-escape-string</a>]: Access denied for user 'ODBC'@'localhost' (using password: NO)

Dies liegt daran, dass die Funktion mysql_real_escape_string eine Verbindung zu der von mysql_connect geöffneten Datenbank mysql_connect . Meine Frage ist, wie kann ich das mit * Zend_DB * Klassen verwenden. Ich muss immer benutzerdefinierte Auswahlabfragen verwenden. Schätzen Sie Ihre anderen Vorschläge, wenn verfügbar.

Vielen Dank


Answer #1

Ich hatte das gleiche Problem und diese Lösung funktioniert gut für mich. Ich hoffe, das wird helfen. Sie können so etwas tun:

$quote_removed_name = str_replace("'","''",$name);

Schreibe dann deine Abfrage auf diese Weise:

$sql = "SELECT * from customer where Customer_Name = '$quote_removed_name'";

Answer #2

Sie können auch die Parameterbindung verwenden, dann sieht die Methode wie folgt aus:

public function getData($name)
{
  $sql = "SELECT * from customer where Customer_Name = :name";
  return $this->objDB->getAdapter()->fetchAll ($sql, ['name' => $name]);
}

Dann werden Ihre Daten automatisch maskiert





mysql-real-escape-string