Forum » Izdelava spletišč » PHP Kodiranje
PHP Kodiranje
adrian007 ::
Pozdravljeni.
Mene pa muči naslednja zadeva. Zaradi zaščite (rad bi skril) bi zakodiral vse parametre v url naslovu.
Primer: nekaj.php?id=5&action=brisi bi rad kodiral v nekaj.php?guid=2f3fasdfq4lfjxil234t2lydjfgra
Niz s katerim se kodira se naključno generira in je shranjen v sejo. To pomeni da ta ključ velja samo za trenutno sejo.
Torej če kdo spremeni v guid samo eno črko je zadeva fuč.
Imate kakšen predlog?
Mene pa muči naslednja zadeva. Zaradi zaščite (rad bi skril) bi zakodiral vse parametre v url naslovu.
Primer: nekaj.php?id=5&action=brisi bi rad kodiral v nekaj.php?guid=2f3fasdfq4lfjxil234t2lydjfgra
Niz s katerim se kodira se naključno generira in je shranjen v sejo. To pomeni da ta ključ velja samo za trenutno sejo.
Torej če kdo spremeni v guid samo eno črko je zadeva fuč.
Imate kakšen predlog?
adrian007 ::
zaradi sql injectiona, ter zaradi tega, ker določeni parametri niso za javnost.
Kaj praviš?
Kaj praviš?
Brilko ::
če sploh nevem kaj bi rad, zaka bi meu zd nek id vsak drugačen? čemu? sej nima varnostnega dostopa do user sistema...
adrian007 ::
Ja v glavo mi je prišla ideja, ki očitno ni najboljša... Torej kaj predlagate, kako izboljšati aplikacije, torej jih zaščititi?
jeti51 ::
No, se mi je kar zdelo...
SQL injection rešuješ tako, da escapaš stringe (parametre), ki jih uporabljaš za sestavljanje SQL poizvedbe oziroma uporabiš stored procedure ter te stringe pošiljaš kot parametre... pa še kakšen način je (npr. prepared queries).
Določeni parametri niso za v javnost? Kateri pa, če smem vprašat? Če te skrbi, da kdo tretji prisluškuje povezavi, uporabi SSL. Če pa te skrbi, da uporabnik ne bi slučajno videl česa v stilu ?action=delete&ID=17, se pa spet lotevaš varnosti na napačnem koncu. Raje pred izvedbo akcije v svoji PHP kodi preveri, ali uporabnik ima pravice za izvedbo določene akcije, ne pa s skrivanjem parametrov, prosim lepo...
SQL injection rešuješ tako, da escapaš stringe (parametre), ki jih uporabljaš za sestavljanje SQL poizvedbe oziroma uporabiš stored procedure ter te stringe pošiljaš kot parametre... pa še kakšen način je (npr. prepared queries).
Določeni parametri niso za v javnost? Kateri pa, če smem vprašat? Če te skrbi, da kdo tretji prisluškuje povezavi, uporabi SSL. Če pa te skrbi, da uporabnik ne bi slučajno videl česa v stilu ?action=delete&ID=17, se pa spet lotevaš varnosti na napačnem koncu. Raje pred izvedbo akcije v svoji PHP kodi preveri, ali uporabnik ima pravice za izvedbo določene akcije, ne pa s skrivanjem parametrov, prosim lepo...
jeti51 ::
Pa še eno vprašanje: si sploh prebral vsaj kakšen članek/manual/tutorial o varnosti v PHP-ju oziroma o varnosti spletnih aplikacij nasploh. Tega je namreč malo morje in povsod imaš opisane standardne preizkušene pristope, kako izboljšati varnost. To je kar obsežna tema in na forumu ti nihče ne bo šel vsega od a do ž podrobno razlagati. RTFM se temu reče, da dobiš neke osnove, potem pa vprašaj kakšno konkretno stvar, kjer se ti zadeva zatakne. Člankov pa seveda ne bo nihče "prepisoval" v svoje poste, če veš, kaj hočem povedati...
Zgodovina sprememb…
- spremenil: jeti51 ()
jeti51 ::
Enako velja za stored procedure. Go google! ("stored procedures") Imaš v dosti člankih napisano nekaj tudi o tem. Na kratko povedano pa so to funkcije, ki jih napišeš v sami bazi, ter jih potem iz kode kličeš podobno kot poizvedbe, le da ne pošiljaš sestavljenega queryja, ampak to pač izgleda kot klic neke funkcije v bazi. Baza pa potem podane parametre že zna sama jemati kot vrednosti parametrov in ne kot del SQL poizvedbe - ne glede na to, ali parameter vsebuje kakšne narekovaje (in druge posebne znake) ali ne. Tako možnost SQL injectiona avtomatično odpade.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Spletno gostovanje v oblaku - hitrost najbolj pomembnaOddelek: Izdelava spletišč | 3283 (2850) | illion |
» | Zaščita pred SQL injection - user?Oddelek: Izdelava spletišč | 1972 (1400) | techfreak :) |
» | Raziskava o ranljivosti spletnih strani z SQL bazami podatkovOddelek: Novice / Varnost | 4943 (4279) | sverde21 |
» | SQL injectionOddelek: Izdelava spletišč | 1973 (1771) | CCfly |
» | Izvorna koda mojega par dnevnega dela; ce jo malo pokomentirate :) (strani: 1 2 )Oddelek: Programiranje | 6469 (4814) | Microsoft |