Open jaanos opened 2 years ago
Problem sem odpravil kjer je bilo potrebno, torej v mapaha iskanjeVoznegaReda.py in prijavaNakup.py. V mapi simulacijaPodatkov.py se mi to ni zdelo potrebno, saj je namenjena le polnjenju baze. Ali je to vredu?
Pri polnjenju baze to res ni tako kočljivo (saj podatkov ne podaja potencialno zlonamerni uporabnik), je pa vseeno bolje, če se podatki vstavljajo na varen način, tako da ne bi prihajalo do napak in morebitnih nepričakovanih izidov.
Popravil.
Vidim, da imata v
iskanjePodatkov.py
insimulacijaPodatkov.py
nekaj nevarnih poizvedb, npr. https://github.com/Globocnik0/Potniski-promet/blob/3290a8c168e36470023a28243fade71267562138/iskanjePodatkov.py#L20-L25 Z vstavljanjem podatkov sformat
namreč odpreta možnost za napade SQL injection. Namesto tega na mesto podatkov postavita%s
(brez morebitnih navednic - za to bo poskrbel vmesnik), same podatke pa podajta v seznamu kot drugi argument metodeexecute
, npr.Na isti način lahko gradita tudi poizvedbe, kjer število podatkov ni fiksno. Tako namesto https://github.com/Globocnik0/Potniski-promet/blob/3290a8c168e36470023a28243fade71267562138/simulacijaPodatkov.py#L30-L34 raje naredita
Seveda lahko v bolj kompleksnih primerih sestavita niz s
%s
na mestu vsakega vstavljenega podatka in seznam podatkov v ustreznem vrstnem redu, pa potem kličetacur.execute
na tem nizu in seznamu.