Autor Zpráva
perwin
Profil
Ahoj,
mám takový problém: Někdo se mi nedávno přihlásil na stránky, i když jeho heslo a nick použitý při přihlášení vůbec neexistuje v databázi, kde se nicky ověřují s existujícími nicky a hesly účtů. Přihlášení probíhá tak, že dotyčný zadá nick a heslo do formulářových polí, a data z nich se v jiném PHP souboru ověřují (heslo se pomocí md5 nejdříve zahashuje) s vypsanými nicky a zahashovanými hesly (WHERE heslo='$heslo' AND nick='$nick'). Pokud se data rovnají, pro uživatele se vyrobí $_SESSION s prihlasen = true, a další session s informacemi o přihlášeném uživateli. Pokud se data nerovnají, dotyčného to přesměruje zpět na přihlašovací stránku s chybovou hláškou. Ale teď by mě zajímalo, jak to ten dotyčný, kterému se povedlo nepovoleně přihlásit, dokázal obejít... Prosím poraďte, jak se tomu ubránit. Děkuji
Alphard
Profil
Ten dotyčný se zřejmě jmenoval ' or 1=1 -- .
Escapujte uživatelské vstupy.
perwin
Profil
Alphard:
Ne, tak se nejmenoval. Mám totiž vyrobenou tabulku pro nepovedené přístupy, kam se ukládá zadané heslo a nick + IP adresa. Podobně jako by měl nick pes, heslo slon a IP adresu 1.2.3.4 (nebudu dávat přesné údaje, stejně by ničemu nepomohli). Tak jak se tam dostal? Děkuji
Alphard
Profil
perwin:
Tipl jsem nejjednodušší útok. Když jsem neuhádl, těžko radit bez konkrétního kódu. Nicméně rada o escapování platí.
Když zadáte stejné jméno a heslo, podaří se vám útok opakovat?

Nejlepší bude dát sem ten kód.
perwin
Profil
Alphard:
Kód na přihlašování?
Alphard
Profil
Ano. Předpokládám, že s ním je problém. Nebo je jiná možnost, jak se k vám mohl útočník nabourat?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: