Co je spatne na tomto SQL dotazu?

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

HellCoder
Level 2.5
Level 2.5
Příspěvky: 316
Registrován: 11 úno 2013 20:59

Co je spatne na tomto SQL dotazu?

Příspěvek od HellCoder »

Kód: Vybrat vše

$data = mysql_fetch_array(mysql_query("SELECT * FROM uzivatele WHERE jmeno=".$_GET['jmeno']." AND heslo=".hash(md5,$_GET['heslo']) ));


Nevite nekdo co je na tom spatne? Diky moc
HellCoder
MainBoard : ASUS Z9PE-D8 WS
CPU : Intel Core i7 3970X
RAM : Corsair Vengeance Black 16GB (2x8GB)
GPU : 2x nVidia GTX Titan 2way SLI
SSD : Samsung SSD 840 Series - 256GB
HDD : 3x Seagate SV35.5 - 2TB RAID 0
Zvukovka : Creative Sound Blaster VX
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

Re: Co je spatne na tomto SQL dotazu?

Příspěvek od CZechBoY »

cokoliv
nemusí existovat tabulka, v get můžou být zákeřné/prázdné hodnoty...
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
fu.cz
nováček
Příspěvky: 38
Registrován: 01 říj 2012 01:29

Re: Co je spatne na tomto SQL dotazu?

Příspěvek od fu.cz »

a co ta tečka?
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

Re: Co je spatne na tomto SQL dotazu?

Příspěvek od CZechBoY »

jaká tečka?
teď jsem si všiml že tam nemá apostrofy..
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
fu.cz
nováček
Příspěvky: 38
Registrován: 01 říj 2012 01:29

Re: Co je spatne na tomto SQL dotazu?

Příspěvek od fu.cz »

ty si odborník. On se ptal na sql dotaz ne na to co se děje dál.
Btw na co apostrof??? Pokud nemyslíš uvozovky a tu tečku.
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

Re: Co je spatne na tomto SQL dotazu?

Příspěvek od CZechBoY »

tečka spojuje stringy v php
apostrofy třeba na uvození textu, bez apostrofů můžeš vložit jen čísla a funkce
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
Uživatelský avatar
neudy
nováček
Příspěvky: 31
Registrován: 13 říj 2008 15:03
Kontaktovat uživatele:

Re: Co je spatne na tomto SQL dotazu?

Příspěvek od neudy »

Ahoj,
zkusil bych tohle, nicméně si nejsem jist, jestli lze php funkci hash takto v sql využít.

Kód: Vybrat vše

$data = mysql_fetch_array(mysql_query("SELECT * FROM uzivatele WHERE jmeno='" . $_GET['jmeno'] . "' AND heslo='" . hash(md5,$_GET['heslo']) . "' "));


Navíc využívání metody GET pro heslo není zrovna bezpečné(http://cs.wikipedia.org/wiki/GET). Já bych navrhoval změnu na toto:

Kód: Vybrat vše

$data = mysql_fetch_array(mysql_query("SELECT * FROM uzivatele WHERE jmeno='" . $_POST['jmeno'] . "' AND heslo=PASSWORD('" . $_POST[heslo] . "') "));
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

Re: Co je spatne na tomto SQL dotazu?

Příspěvek od CZechBoY »

neudy: čim sis pomohl, že místo GET si použil POST?
tu funkci musíš escapovat funkcí mysql_real_escape_string v případě řetězce a v případě celého čísla přes (int)$var, v případě desetinného čísla (float)$var

proč by nešlo použít funkci hash? vrací řetězec, takže je to možné
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
Uživatelský avatar
neudy
nováček
Příspěvky: 31
Registrován: 13 říj 2008 15:03
Kontaktovat uživatele:

Re: Co je spatne na tomto SQL dotazu?

Příspěvek od neudy »

Použít metodu GET pro přenos hesla je dle mě chyba viz http://php.vrana.cz/http-metody-get-a-post.php. Neříkám, že to hash nebude fungovat. Já jen navrhnul co znám a používám.
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

Re: Co je spatne na tomto SQL dotazu?

Příspěvek od CZechBoY »

jasně protože GET se uchovává v historii se všemi parametry
já ten dotaz nestudoval co tam odesílá, ani nenapsal, že to je formulář na přihlášení, takže to můžou být fiktivní jména proměnných
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
fu.cz
nováček
Příspěvky: 38
Registrován: 01 říj 2012 01:29

Re: Co je spatne na tomto SQL dotazu?

Příspěvek od fu.cz »

jee konečně někdo pochopil tu tečku ;) Kromě toho, apostrof a uvozovky vedle sebe sou ok?
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

Re: Co je spatne na tomto SQL dotazu?

Příspěvek od CZechBoY »

ta tečka nemusí být oddělené mezerou či jiným bílým znakem, je jen dobrá konvence psaní kodu
tohle je postupný skládání dotazu, ikdyž úplně debilní :D , takže apostrofy se pošlou v SQL příkazu, zatímco uvozovky uvozují řetězec v PHP
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
Zamčeno
  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Bluetooth:Bluetooth neni k dispozici v tomto zarizeni
    od byron » » v Vše ostatní (sw)
    1 Odpovědi
    4962 Zobrazení
    Poslední příspěvek od kecalek
  • Problém s DD příkazem, co dělám špatně?
    od drobino » » v LiNuX a ostatní alternativní OS
    7 Odpovědi
    10225 Zobrazení
    Poslední příspěvek od drobino

Zpět na „Programování a tvorba webu“