Autor | Zpráva | ||
---|---|---|---|
marx Profil * |
#1 · Zasláno: 27. 12. 2012, 20:22:55
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 |
#2 · Zasláno: 27. 12. 2012, 20:25:56
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 * |
#3 · Zasláno: 28. 12. 2012, 12:06:37
?id=-1 union all select * from databaze ... docela narusi bezpecnost
|
||
Alphard Profil |
#4 · Zasláno: 28. 12. 2012, 12:26:11
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 * |
#5 · Zasláno: 28. 12. 2012, 14:17:41
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 |
#6 · Zasláno: 28. 12. 2012, 14:22:32
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 |
#7 · Zasláno: 28. 12. 2012, 14:27:35
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š ;)
|
||
Časová prodleva: 11 let
|
0