SQL_ESC(string
)
„Escapt“ (d. h. maskiert) einfache
Anführungszeichen[227] ('
) in SQL-Befehlen, um „SQL
Injection“[228] zu verhindern. Dies ist hilfreich bei Verwendung der
ODBC_
-Datenbank-Funktionen
(siehe Abschnitt 69, „...
()ODBC_
“).funktionsname
()
Wichtig | |
---|---|
Das ist ein gutes Beispiel dafür, warum man nie
doppelte Anführungszeichen ( |
exten => 123,1,Set(name=philipp) exten => 123,n,Set(telnr=${ODBC_SQL(SELECT `telnr` FROM `liste` WHERE `name`='${SQL_ESC(${name})}')} exten => 123,n,Verbose(1,Telefonnummer ist: ${telnr})
Asterisk-Versionen:
| | | 1.4 |————————| 1.6 |————————
Interner Hilfetext zu dieser Funktion in Asterisk 1.4:
-= Info about function 'SQL_ESC' =- [Syntax] SQL_ESC(<string>) [Synopsis] Escapes single ticks for use in SQL statements [Description] Used in SQL templates to escape data which may contain single ticks (') which are otherwise used to delimit data. For example: SELECT foo FROM bar WHERE baz='${SQL_ESC(${ARG1})}'
Differenz des internen Hilfetexts von Asterisk 1.2 zu 1.4: — in Asterisk 1.2 nicht vorhanden —
Differenz des internen Hilfetexts von Asterisk 1.4 zu 1.6: — keine —
Siehe auch. Abschnitt 69, „ODBC_
“, Abschnitt 71, „funktionsname
()ODBC_SQL()
“
[227] Typografisch ist es zwar nicht korrekt, hier von „einfachen Anführungszeichen“ zu sprechen, denn es handelt sich um Apostrophe, aber das lassen wir mal außer Acht. Jeder Programmierer weiß, was gemeint ist.
[228] SQL-Einschleusung, http://de.wikipedia.org/wiki/SQL-Injection
AMOOCON 2010
Noch kein Ticket? Dann wird es Zeit. Nur noch wenige Tage.
- Infos unter www.amoocon.de.
- twitter.com/AMOOCON