Autor Zpráva
marx
Profil *
Dobry den,
mam docela jednoduchy problem ale nevim jak ho vyresit.

Mam adresu napr neco.cz/?id=5

Ale jak prosim osetrit to aby to cislo bylo jen v ramci prvku ID z databaze. Resp. aby mi tam nikdo nemohl dat vlastni SQL skript nebo ID co v databazi jednoduse neni.

Diky moc za odpovedi
Alphard
Profil
Tak vynutit si číslo je triviální, $cislo = (int) $neco;. Jestli je z vaší databáze ví jenom ta databáze, obvykle ale dosazení neexistujícího id nenaruší bezpečnost.
marx
Profil *
?id=-1 union all select * from databaze ... docela narusi bezpecnost
Alphard
Profil
marx [#3]:
Nechápu. Z id zbyde -1, databáze vrátí 0 záznamů, nic se nestane (leda by bylo špatně nastavené vypisování chyb a chybová hláška by něco prozradila, ale to je jiná věc).
Že nemůžete vložit do dotazu ten union nikdo nepopírá.
marx
Profil *
No problem je ze nevrati, tohle se prave snazim osetrit. Udela to to co nasleduje v SQL zatim, takze cokoliv co se tam napise.
joe
Profil
marx:
Dokud nenapíšeš to, co a proč tam vlastně vytváříš, nikdo ti nebude schopný pomoci. Napiš problém a tvůj kód.
Rellik
Profil
Pokud pak dál pracuješ s tím číslem někde ve scriptu můžeš ho ošetřit pouze na číselné hodnoty funkcí intval() a pokud víš že tam budou třeba jen jedno nebo dvojčíselné údaje, tak preventivně můžeš zkracovat i jejich počet na ty dva pomocí funkce substr() Pokud máš na mysli něco jiného, tak musíš napsat nějaké větší info o tom co vlastně chceš ;)

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: