NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Avatar
tester
Člen
Avatar
tester:29.5.2015 15:46

Ahoj, mám takový problém.

Potřebuji uložit cestu obrázku do DB.
Tady je příkaz pro SQL:

INSERT INTO sprava_abonenti (Cislo,Cislo_karty,Terminal,Cas,IMG) VALUES ('{0}','{1}','{2}','{3}','{4}')", ab[3], ab[4], ab[5], DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), "C:\\Users\\Public\\Pictures\\Sample Pictures\\Koala.jpg")

Po vložení do DB se mi v ní ale uloží vše bez lomítek.

Co dělám špatně?

 
Odpovědět
29.5.2015 15:46
Avatar
Odpovídá na tester
Michal Štěpánek:30.5.2015 12:02

Zkus použít parametry a tam si udělej proměnnou cesta jako string. Nehledě k tomu, že takto napsaná cesta ti na jiném počítači nebude fungovat, protože tam bude jiná adresářová struktura...

Nahoru Odpovědět
30.5.2015 12:02
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
tester
Člen
Avatar
tester:1.6.2015 9:07

Tak už se mi to povedlo.

Musel jsem nahradit lomítka dvojtýma.

cesta = cesta.Replace("\\", "\\\\");
 
Nahoru Odpovědět
1.6.2015 9:07
Avatar
Odpovídá na tester
Neaktivní uživatel:1.6.2015 13:10

I tak bych ti doporučoval používat parametry jak ti radí Michal. Pokud cesta bude obsahovat nějaké znaky které se databázi nebudou úplně líbit (např. "--" což v některých databázích označuje začátek komentáře) může ti to docela zatopit. Mimochodem tímto způsobem kterému se říká sql injection se dají nabourat špatně napsané weby které nepoužívají parametry a bývá to jedna z prvních technik které útočník zkusí.

Editováno 1.6.2015 13:11
Nahoru Odpovědět
1.6.2015 13:10
Neaktivní uživatelský účet
Avatar
tester
Člen
Avatar
tester:1.6.2015 13:23

Jasně to znám a používám u vstupů od uživatelů, ale tady se jedná o to, že si fotím snímek z IP kamery a ukládám snímek do PC s předem známou cestou a vygenerovaným názvem snímku a právě tuhle cestu pak vkládám do DB. Takže se tady SQL injection stát nemůže.

 
Nahoru Odpovědět
1.6.2015 13:23
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.