Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] MySQLi und escapen von Zeichenketten (https://www.delphipraxis.net/147236-%5Bphp%5D-mysqli-und-escapen-von-zeichenketten.html)

Matze 4. Feb 2010 07:53


[PHP] MySQLi und escapen von Zeichenketten
 
Hallo zusammen,

bisher nutzte ich in PHP die "klassischen" MySQL-Funktionen und kümmerte mich selbst um das Escapen der Zeichenketten um SQL-Injections zu verhindern.
Ich habe mich nun etwas in MySQLi eingearbeitet. Da nutzt man diese Parameter, wie sie überall bejubelt werden.

Muss ich mich dennoch selbst um das Escapen kümmern oder machen das die entsprechenden Funktionen für mich, da der Typ der Werte (String, Integer, ...) vorgegeben wird?

Hier ist mal ein Beispiel-Code. Die Zeichenkette 'de' ist nicht escaped:

Code:
$this->stmt = $this->db_connection->prepare(
   'SELECT * FROM main_tabs
   WHERE lang = ?
      AND subcat_of = ?
   ORDER BY position ASC');
$this->smt->bind_param('si', 'de', 5);
$this->stmt->execute();
Grüße, Matze

fkerber 4. Feb 2010 08:06

Re: [PHP] MySQLi und escapen von Zeichenketten
 
Hi!

Allgemein ist das Escapen bei Prepared-Statements nicht mehr nötig. Der Grund des Escapen ist ja der, dass man SQL-Injections verhindern möchte. Bei Prepared-Statements ist das Statement aber schon "fertig", bevor die "Variablen" ersetzt werden.
Somit besteht dieses Risiko nicht mehr.


Grüße, Frederic

Matze 4. Feb 2010 08:07

Re: [PHP] MySQLi und escapen von Zeichenketten
 
Hallo Frederic,

super, danke. Dann mache ich ja alles richtig. :)

Grüße, Matze


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:30 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz