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