Ja samozrejme nehovorim o klasickom formatovani ale o sposobe, akym to robi 
MySQLdb (pretoze o nom sa bavime) - a tam teda naozaj nevidim dovod, preco by 
sa nemohlo pouzit '%s'.

Ak sa nenahnevas slush, tak ta malo poupravim nech tu nelieta chybny kod v 
konfere. Parametre musia ist ako tuple, cize:

"SELECT * FROM blabla WHERE promenna=%s", (promenna,)   # ano, ta ciarka v 
zatvorke je tam ok, musi tam v tomto pripade byt



-----Pôvodná správa-----
Od: slush [sl...@slush.cz]
Komu: Konference PyCZ 
Predmet: Re: [python] hash, mysql

Tady vidim vzajemne nepochopeni. Jak je videt, bezpecnostni diry v aplikacich 
casto zavisi i na jedinem znaku :-). Porovnejte nasledujici:

"SELECT * FROM blabla WHERE promenna='%s'" % promenna
"SELECT * FROM blabla WHERE promenna=%s", promenna
 
Uz je videt ten rozdil? Prvni radek je klasicke python prirazeni - zadne 
pridavani uvozovek, zadna ochrana proti SQL injection apod. Druhy priklad, jako 
jednotlive parametry predavane do funkce knihovny MySQLdb, jiz toto vse resi. 
Jediny rozdil je v carce versus procentu.
 
Marek



2009/3/20 Dan Pressl <nu.f...@gmail.com>
 Prekvapuje me to, ze %s v kombinaci s % provadi, pokud dobre vim,
 jenom nahrazeni %s nejakym retezcem. Z sqlite3 sem zvykly pouzivat ?
 misto %s prave kvuli odstraneni moznosti SQL Injection, aby prave
 nedoslo k nahrazeni retezcem, ktery by nemusel byt zrovna koser:)
 
 
 
_______________________________________________
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

Odpovedet emailem