Dobrý den, mám problémy se spoluprací se sql serverem:
server my vrací chybu:
ProgrammingError: (1064, 'You have an error in your SQL syntax; check the
manual that corresponds to your MySQL server version for the right syntax to
use near
Nemá být to %s také v uvozovkách?
SELECT * FROM users WHERE name='root' AND password='%s'
calis.mar...@seznam.cz napsal(a):
Dobrý den, mám problémy se spoluprací se sql serverem:
server my vrací chybu:
ProgrammingError: (1064, 'You have an error in your SQL syntax; check the
manual that
Skus funkciu passToHash() upravit takto:
hash = hash.hexdigest()
return hash
azur
-Pôvodná správa-
Od: [mailto:calis.mar...@seznam.cz]
Komu: Konference PyCZ python@py.cz
Predmet: [python] hash, mysql
Dobrý den, mám problémy se spoluprací se sql serverem:
server my vrací chybu:
A nejaky duvod, proc %s neni v uvozovkach?
Marek
2009/3/19 calis.mar...@seznam.cz
Dobrý den, mám problémy se spoluprací se sql serverem:
server my vrací chybu:
ProgrammingError: (1064, 'You have an error in your SQL syntax; check the
manual that corresponds to your MySQL server version for
Nemusi (vlastne nesmie) to byt v uvodovkach pokial sa pouziva modul MySQLdb .
Jedine pri _mysql (lowlevel) musi.
-Pôvodná správa-
Od: slush [sl...@slush.cz]
Komu: Konference PyCZ
Predmet: Re: [python] hash, mysql
A nejaky duvod, proc %s neni v uvozovkach?
Marek
2009/3/19
Pretoze MySQLdb robi escapovanie automaticky a tie uvodzovky tam prida sam.
Modul _mysql to samozrejme nerobi, pretoze je lowlevel a celkovo dost
nepohodlny. Tiez nie je urceny na priame pouzivanie (pouziva ho prave modul
MySQLdb).
-Pôvodná správa-
Od: slush [sl...@slush.cz]
Komu:
Mimochodom, podla toho, ako to ten clovek pouziva, to vyzera, ze bud pouziva
modul _mysql alebo pouziva MySQLdb avsak blbo. Malo by to byt takto:
db_curr.execute(SELECT * FROM users WHERE name='root' AND password=%s,
(password
,) )
-Pôvodná správa-
Od: slush [sl...@slush.cz]
Komu:
Ja nechci rejpat, ale nemelo by misto:
%s
byt spis:
?
aby nemohlo dojit tak snadno k SQL Injection ?
2009/3/19 calis.mar...@seznam.cz:
Dobrý den, mám problémy se spoluprací se sql serverem:
server my vrací chybu:
ProgrammingError: (1064, 'You have an error in your SQL syntax; check the
Ehm proti SQL injection jsem chráněný přes kontrolu nepovolených znaků..
Původní zpráva
Od: Dan Pressl nu.f...@gmail.com
Předmět: Re: [python] hash, mysql
Datum: 19.3.2009 20:53:26
Ja nechci rejpat, ale nemelo by misto:
THX pomohlo..
Původní zpráva
Od: azurIt azu...@pobox.sk
Předmět: Re: [python] hash, mysql
Datum: 19.3.2009 19:51:00
Skus funkciu passToHash() upravit takto:
hash = hash.hexdigest()
return hash
azur
No, myslel jsem si to taky ale když jsem si teď opravil hashovací funkci
funguje to pouze když je to v uvozovkách..
Původní zpráva
Od: azurIt azu...@pobox.sk
Předmět: Re: [python] hash, mysql
Datum: 19.3.2009 20:45:59
tady najdeš specifikace k DB API: http://www.python.org/dev/peps/pep-0249/ . Já
osobně jsem tam uvozovky necpal protože dříve jsem používal pysqlite3 a ty to
nevyžadovaly...
Původní zpráva
Od: slush sl...@slush.cz
Předmět: Re: [python] hash, mysql
Datum: 19.3.2009
Povodne tam bolo:
SELECT * FROM users WHERE name='root' AND password=%s % password
a treba aby sa to spustalo:
cursor.execute( SELECT * FROM users WHERE name='root' AND
password=%s, password)
DB API pouziva %s ako placeholdery namiesto ?
2009/3/19 Dan Pressl nu.f...@gmail.com:
Ja nechci
Pretoze to pouzivas nespravne, vid.
http://www.py.cz/pipermail/python/2009-March/008768.html
-Pôvodná správa-
Od: [mailto:calis.mar...@seznam.cz]
Komu: Konference PyCZ python@py.cz
Predmet: Re: [python] hash, mysql
No, myslel jsem si to taky ale když jsem si teď opravil hashovací
aha :)
btw: mám vlastní metodu na spouštění dotazů (abych nemusel nic psát dvakrát..)
takže tohle by my situaci poněkud komplikovalo...
Původní zpráva
Od: azurIt azu...@pobox.sk
Předmět: Re: [python] hash, mysql
Datum: 19.3.2009 22:27:44
Díky, ale jak jsem psal výše radši zůstanu u stávající metody i když hold budu
muset psát uvozovky.. :(
Původní zpráva
Od: Tomáš Drenčák to...@drencak.com
Předmět: Re: [python] hash, mysql
Datum: 19.3.2009 22:10:31
Povodne
To robis vcelku chybu pretoze sa ti tam nic neescapuje a musis to teda robit
rucne - zbytocna robota a nema istotu, ze to robis uplne ok.
Inak nechapem co by ti to skomplikovalo, moze to predsa urobit napr. nejako
takto:
def run_sql_query(*args):
db_curr.execute(args[0], args[1:])
a volas:
Nema, MySQLdb nepodporuje nic take ako '?' . Odporucam minimalne prebehnut
dokumentaciu
-Pôvodná správa-
Od: Jirka Vejrazka [mailto:jirka.vejra...@gmail.com]
Komu: Konference PyCZ python@py.cz
Predmet: Re: [python] hash, mysql
Ehm proti SQL injection jsem chráněný přes kontrolu
Ehm, čemu se směješ? :))
Původní zpráva
Od: Jirka Vejrazka jirka.vejra...@gmail.com
Předmět: Re: [python] hash, mysql
Datum: 19.3.2009 22:56:57
Ehm proti SQL injection jsem chráněný přes kontrolu nepovolených znaků..
Nedalo mi to (http://mysql-python.sourceforge.net/MySQLdb.html) a
uznavam svoji chybu. Netusil sem, ze v MySQLdb se vazne ma pouzivat %s
(i kdyz to s tim, ze ? vubec nezna taky neni pravda:) ). Trosku me to
prekvapuje ...
2009/3/19 azurIt azu...@pobox.sk:
Nema, MySQLdb nepodporuje nic take ako
Narazel jsem presne na tohle. Podle me dela neco %s % promenna proste
textovy replacement pythonu a nikde to zadne uvozovky nepridava. Pokud se
bavime o MySQLdb rozhrani, melo by to byt neco %s, promenna (- carka
misto procento). Pokud jsem uplne mimo, opravte me prosim.
Marek
2009/3/19 azurIt
Ano, je to tak. Da sa to pouzivat aj tak, ako to robi avsak potom sa tam
nevykonava ziadne escapovanie, co je teda podla mna dost velka degradacia
celeho modulu.
-Pôvodná správa-
Od: slush [sl...@slush.cz]
Komu: Konference PyCZ
Predmet: Re: [python] hash, mysql
Narazel jsem presne
Co ta na tom prekvapuje ? A mimochodom, na co sa teda '?' pouziva ?
-Pôvodná správa-
Od: Dan Pressl [mailto:nu.f...@gmail.com]
Komu: Konference PyCZ python@py.cz
Predmet: Re: [python] hash, mysql
Nedalo mi to (http://mysql-python.sourceforge.net/MySQLdb.html) a
uznavam svoji chybu.
Mozes mi povedat, ako tam kvoli tomuto vznikne SQL injection ? Robi sa predsa
escapovanie.
Inak na tej adrese je proste syntax prikazu SELECT, co to ma spolocne s python
modulom ? A jedna sa tam mimochodom o MySQL 6.0 .
-Pôvodná správa-
Od: Dan Pressl [mailto:nu.f...@gmail.com]
Komu:
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
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,
Nenahnevam sa :-). Psal jsem to jako pseudokod, slo mi o tu carku a
procento.
a tam teda naozaj nevidim dovod, preco by sa nemohlo pouzit '%s'.
To ja taky nevim. Vsak to pisu a souhlasim s Tebou. Mel jsem pocit, ze se
kazdy bavi o necem trochu jinem - nekdo resil %s vs ? a jiny reagoval na %
vs
27 matches
Mail list logo