[Python-de] Maskierung von %

Stefan Schwarzer sschwarzer at sschwarzer.net
Mo Feb 5 12:14:27 CET 2007


Hi Volker,

On 2007-02-05 09:21, Volker Helm wrote:
> gute Idee, allerdings ist es bei mir wohl kein Problem der Sicherheit. Erstens
> wird das Script nur intern verwendet,

auch, wenn der Hinweis auf den zusätzlichen Parameter meist
im Zusammenhang mit der Sicherheit kommt, ist er auch in
allen anderen Fällen sinnvoll. Wenn eine einzusetzende
Zeichenkette ein Apostroph ' enthält, gibt es dann zwar
wahrscheinlich keine ausgenutzte Sicherheitslücke - aber
einen Fehler bei der SQL-Ausführung. Daher sollte man
_immer_ mit dem zweiten (und ggf. weiteren) Argument(en)
von cursor.execute arbeiten, das macht den Code generell
robuster.

> zweitens wird der SQL fest definiert, nur
> um die entsprechenden Einschränkungen erweitert, so kann ich eine Funktion für
> 5 SQL-Abfragen einsetzen (Blöde Adresssuche nach Namen, Telefon etc.).
> Die zusätzlichen individuellen Parameter werden über feste Bindungen übergeben:
> cur.execute("""select name,nummer from table where name like '%'||:p_begriff||'%'""", p_begriff = Suchbegriff)

Was du hier ja auch tust. :-)

Viele Grüße
Stefan