Avatar
HAPPY DAY
Člen
Avatar
HAPPY DAY:

ahoj mám problém. jde o tohle:
Warning: mysql_result() expects parameter 1 to be resource, boolean given in /data/web/vir­tuals/28888/vir­tual/www/login­.php on line 4

a kód na řádku 4 je:
$pocetzaznamu = mysql_result(mys­ql_query("SELECT COUNT(*) FROM users WHERE usermail = '".$_POST['ma­il']."' AND userpass = '".sha1($_POS­T["pass"])."'"), 0);

co je prosím za chybu předtím to fungovalo. potom jsem jen přidal CSS a hned to tohle vypsalo

Odpovědět 17.9.2012 16:20
Kdo pozdě chodí, sám sobě škodí (AUTOR: já)
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na HAPPY DAY
David Čápka:

Ta query ti vrátila FALSE, čili se neprovedla a nelze z ní načíst pole. Otázka je proč, ale to já ti asi neřeknu. Zkus si vypsat ten příkaz a vložit ho do MyPHPAdmina. Možná máš vypnutou databázi, možná je tam překlep, neexistuje tabulka...

2 připomínky:

  1. Neescapuješ, to je velmi nebezpečné.
  2. mysql ovladač je deprecated,
Nahoru Odpovědět 17.9.2012 16:29
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na HAPPY DAY
David Čápka:

Jo a 3. připomínka, ten hash bez soli je také nedostačující.

Nahoru Odpovědět 17.9.2012 16:29
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
HAPPY DAY
Člen
Avatar
HAPPY DAY:

už jsem to vyřešil, asi to byla chyba editoru, což se mi občas stává a potom jsem se špatně připojil k databázi takže OK vše funguje

Nahoru Odpovědět 17.9.2012 17:18
Kdo pozdě chodí, sám sobě škodí (AUTOR: já)
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na HAPPY DAY
David Čápka:

Pokud chceš být adminem webu jen ty, tak zapracuj mé připomínky.

Nahoru Odpovědět 17.9.2012 17:26
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kit
Redaktor
Avatar
Odpovídá na David Čápka
Kit:

Také koukám, že si Michal Doubek (HAPPY DAY) koleduje o SQL injection.

Nahoru Odpovědět  +1 17.9.2012 21:13
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
HAPPY DAY
Člen
Avatar
HAPPY DAY:

No z toho co jsem si přečetl mi přijde, že nebezpečí hrozí jen když používám $_GET ale já používám $_POST

Nahoru Odpovědět 18.9.2012 12:47
Kdo pozdě chodí, sám sobě škodí (AUTOR: já)
Avatar
Kit
Redaktor
Avatar
Odpovídá na HAPPY DAY
Kit:

Docela zábavné čtení. Je úplně jedno, jestli použiješ GET nebo POST. Injection se dá udělat do obojího.

Nahoru Odpovědět 18.9.2012 13:12
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na Kit
Daniel Vítek:

njn,to víš no,je chytřejší než ty....:D :D TO přece není možný udělat injection přes POST :D

btw. [me|]321[/me|­],pošli odkaz na ten web,myslím že ti rádi předvedeme ukázku :D :D

 
Nahoru Odpovědět 22.9.2012 20:58
Avatar
Kit
Redaktor
Avatar
Odpovídá na Daniel Vítek
Kit:

Ale jinak je v pořádku, že to posílá přes POST. Jen je to nutné ošetřit před vložením do SQL a po přijetí udělat přesměrování stránky.

Také je důležité v databázi nemít uživatelská hesla, ale jen jejich hashe. Pokud možno osolené.

Nahoru Odpovědět 22.9.2012 21:11
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na Kit
Daniel Vítek:

Jj,já také používám post... Escapuji vše,i položky v SELECTu

....hesla ? hashe ? osolit ? :D

 
Nahoru Odpovědět 22.9.2012 21:13
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na Daniel Vítek
Daniel Vítek:

Vím co je heslo ale ten zbytek nevím :D

 
Nahoru Odpovědět 22.9.2012 21:13
Avatar
Kit
Redaktor
Avatar
Odpovídá na Daniel Vítek
Kit:

Osobně neescapuji nic, používám prepared statements. Tím pro mne escapování skončilo. Takové SQL dotazy jsou mnohem hezčí a přehlednější.

Určitě jsi slyšel o funkcích md5(), sha1(), sha256() apod. K heslu přidáš nějaký řetězec (sůl), zašifruješ vybranou funkcí (hash) a do databáze jen uložíš výsledek (string). Takové heslo není současnými prostředky možné dešifrovat.

Nahoru Odpovědět 22.9.2012 21:21
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Odpovídá na Kit
Daniel Vítek:

a když se někdo bude chtít přihlásit tak jak to dešifruje ? :D

 
Nahoru Odpovědět 22.9.2012 21:23
Avatar
Kit
Redaktor
Avatar
Odpovídá na Daniel Vítek
Kit:

Nijak. Nejde to. Heslo, které uživatel zadá, se zašifruje stejným postupem a porovnají se výsledky. Pokud jsou totožné, je to OK.

Je to standardní osvědčený postup používaný v profesionálních aplikacích.

Editováno 22.9.2012 21:29
Nahoru Odpovědět 22.9.2012 21:25
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Avatar
Daniel Vítek
Tým ITnetwork
Avatar
Avatar
Kit
Redaktor
Avatar
Odpovídá na Daniel Vítek
Kit:

Teď koukám, že ten hash (i když bez soli) tam už je. No co, přehlédl jsem se.

Nahoru Odpovědět 22.9.2012 22:06
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
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 18 zpráv z 18.