Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Uglavnom post/get - zastita od nezeljenih unosa i logovanje/prepoznavanje korisnika.

[es] :: PHP :: Uglavnom post/get - zastita od nezeljenih unosa i logovanje/prepoznavanje korisnika.

Strane: 1 2

[ Pregleda: 5074 | Odgovora: 22 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mls

Član broj: 210388
Poruke: 64
*.adsl-3.sezampro.yu.



+3 Profil

icon Uglavnom post/get - zastita od nezeljenih unosa i logovanje/prepoznavanje korisnika.19.03.2010. u 22:45 - pre 171 meseci
Koristio sam sledece:
stripslashes
mysql_real_escape_string
strip_tags
i uglavnom je to to.

Tako izbegavam da bude unet neki tag pa da pobrka sve prilikom prikaza, logicka zavrzlama za mysql query ( '' OR ''=' i slicno).
Sta jos predlazete da se koristi kako bi se povecala bezbednost? Govorim o logovanju/registrovanju, postavljanju komentara... znaci i post i get.

Jos nesto mi nije jasno. Vezano je za session i cookies. Sta preduzeti da se spreci lazno predstavljanje? Da li je moguce zameniti vrednosti za session i cookies pa da se postavljaju komentari u tudje ime.
Pre upisa u bazu vrsi se provera korisnika na osnovu gore pomenutih session i cookies. Ime (ili id) pod kojim ce komentar biti upisan se preuzima iz session $_SESSION["username"]. Sifru sam stavio da bude md5 i u kombinaciji sa imenom trazi se rezultat iz baze. Ako postoji takav korisnik komentar se upisuje. Logicki razmisljam, ako neko i promeni vrednost session i cookies za username, ostaje sifra... i samo u pravoj kombinaciji sifre i imena moguce je upisati komentar. Ali ipak resih da pitam iskusnije, mozda dobijem jos neku informaciju kako session tacnije funkcionise i kako se zastiti od neceg drugog potencijalno opasnog.

Da li radim dobro i sta mi savetujete da dodam?

edit:
Da li je moguce u vrednosti za username i sifru u cookies i session uneti nesto kao sto je ' or ''=' ili nesto drugo pa da prilikom provere pobrka nesto kao sto navedeno totalno izmeni query?

I jos nesto. Guglajuci o ovome nasao sam sledece:http://www.go4expert.com/forums/showthread.php?t=361
Na slican nacin sam uradio sistem logovanja... ima samo par razlika a najbitnija je nekoliko funkcija pomenutih na samom pocetku posta.

[Ovu poruku je menjao mls dana 20.03.2010. u 00:34 GMT+1]

[Ovu poruku je menjao mls dana 20.03.2010. u 00:39 GMT+1]
 
Odgovor na temu

vidonk
Slobodan Vidovic
Niksic

Član broj: 192156
Poruke: 355
79.143.100.*



+9 Profil

icon Re: Uglavnom post/get - zastita od nezeljenih unosa i logovanje/prepoznavanje korisnika.20.03.2010. u 15:45 - pre 171 meseci
Proporucujem ti da pogledas ova dva tri linka i saznaces dosta dosta toga ........ google je zakon

http://shiflett.org/articles/the-truth-about-sessions

http://blog.fl3x.de/category/mysql/

A ovdje http://www.phpsec.org/projects/guide/sr/1.html#1.2 imas i na nasem jeziku ponesto od ovoga iz gornja dva linka veliki poz
Signaure Hamer Dev .inc
 
Odgovor na temu

mitke013
As Divljine
Freelancer

Član broj: 231934
Poruke: 338
195.252.79.*



+34 Profil

icon Re: Uglavnom post/get - zastita od nezeljenih unosa i logovanje/prepoznavanje korisnika.20.03.2010. u 15:46 - pre 171 meseci
Na $_SESSION korisnik skoro nikako ne moze da utice, tako da si tu prilicno siguran. Dovoljno je da drzis ID korisnika u npr. $_SESSION['userID'] i da sa time baratas.

$_COOKIES koristi za neke nebitne stvari, tipa da li je korisnik glasao za nesto.
 
Odgovor na temu

Goran Rakić
Beograd

Moderator
Član broj: 999
Poruke: 3766

Sajt: blog.goranrakic.com


+125 Profil

icon Re: Uglavnom post/get - zastita od nezeljenih unosa i logovanje/prepoznavanje korisnika.20.03.2010. u 16:14 - pre 171 meseci
Ali moraš preneti ID sesije nekako, po kolačiću ili adresi. Prenos po adresi je opasan jer je dovoljno da korisnik klikne na link ka zlonamernom sajtu i ID postaje dostupan kao referer. Prenos po kolačiću je manje opasan jer treba naći pametno rešenje kako preoteti kolačić. Uglavnom se koristi XSS ili ubrizgavanje koda. Česta greška je i da ID sesije bude predvidljiv, tako da napadač ne juri jedan nego bilo koji aktivan ID.

http://shiflett.org/articles/the-truth-about-sessions je zaista dobar članak.
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
 
Odgovor na temu

mls

Član broj: 210388
Poruke: 64
*.adsl-3.sezampro.yu.



+3 Profil

icon Re: Uglavnom post/get - zastita od nezeljenih unosa i logovanje/prepoznavanje korisnika.20.03.2010. u 19:47 - pre 171 meseci
Hvala vam na odgovorima. Sada mi je dosta jasnije.

Naime, koristio sam ime i md5 hash sifru korisnika kao $_SESSION['nestoname'] i $_SESSION['nestonesto']. Samo u slucaju pokalapanja i jednog i drugog parametra sesije sa vrednostima iz baze korsnik biva autorizovan da pristupi nekom sadrzaju, komentarise i slicno.
Mozda je potencijalna rupa to sto kada nema sesije proveravaju se kolacici koji imaju iste vrednosti. To sam stavio, logicno, da bih prepoznao korisnika koji je bio tu i cekirao "zapamti me". Kazem rupa jer neko moze ukrasti kolacice i uspesno se predstaviti lazno. Ali to nije do mene nego korisnika i njegove licne zastite...

Mislio sam da umesto md5($user_pass) stavim kombinaciju sifre, IP adrese i vremena kada se korisnik poslednji put logovao (da napravim fingerpritn kao u onom clanku).. miksovanu na specifican nacin i unetu kao md5. Medjtuim svejedno je... ako postoje kolacici i ako ih neko preuzme svakako ce biti prepoznat kao pravi vlasnik kolacica. Ili ipak postoji neki unikatan podatak o korisniku? Nesto slicno borwseru, samo sto nije unikatan ali moze posluziti da se malo zakomplikuje.
Deluje mi nemoguce koristiti kolacice i biti sto posto siguran da nece biti moguca zloupotreba. Ali bez kolacica nema prepoznavanja... Mozda da kada se ustanovi poklapanje vrednosti kolacica sa vrednostima iz baze ( po izteku sesije ) da ipak trazi unos samo sifre? Ali opet.. to nije to..
Sta mislite?


@vidonk
Procitao sam clanak sa prvog linka i veoma mi se svidja fingerprint. Sad cu da nastavim i procitam ostale. Veoma me interesuje ovo. ;) Inace google je moj najbolji prijatelj kada je code u pitanju. Nemam mnogo izvora osim google i par foruma. Sve sto sam do sada naucio, naucio sam uz pomoc pomenutih. Samo povremeno/retko pitam nesto na forumu jer uglavnom uspem da izguglam odogovor. Ali sigurnost sajta je ozbiljna tema pa sam resio da prodiskutujem o tome iako sam vec nasao neka objasnjenja i uradio prilicno pouzdan sistem logovanja.

@Goran Rakic
Po adresi nikako, vec sam naisao na objasnjenja o tome. Za sada imam dva parametra gore pomenuta. Ako dodam i neki moj broj ili kombinaciju brojeva i slova pa miksujem sa imenom i sifrom i kao $_SESSION['blabla'] posaljem to kao md5, mislim da je prilicno sigurno? Ostaju mi kolacici koji su potrebni zbog prepoznavanja nakon isteka sesije.
 
Odgovor na temu

Goran Rakić
Beograd

Moderator
Član broj: 999
Poruke: 3766

Sajt: blog.goranrakic.com


+125 Profil

icon Re: Uglavnom post/get - zastita od nezeljenih unosa i logovanje/prepoznavanje korisnika.21.03.2010. u 00:25 - pre 171 meseci
Izgleda mi kao da zaboravljaš da se i ID sesije prenosi po kolačiću. U tvom scenariju posedovanje ova dva kolačića (otisak i ID) je zamena za korisničko ime i lozinku i dovoljno je za ulaz u sistem.
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
 
Odgovor na temu

mls

Član broj: 210388
Poruke: 64
*.adsl-1.sezampro.yu.



+3 Profil

icon Re: Uglavnom post/get - zastita od nezeljenih unosa i logovanje/prepoznavanje korisnika.21.03.2010. u 05:21 - pre 171 meseci
Jasno mi je da ako se pokupe kolacici sav trud da se zastitim od upada je uzaludan. Ako neko ima pristup racunaru zrtve nista ga nece spreciti da pokupi kolacice i za moj sajt, i za recimo yahoo, gmail i sl. Nije mi poznato kako su oni ovo izveli, ali kontam da mi je potreban neki unikatan podatak o korisniku koji nije moguce lazirati. Lupam... neki podatak o hardveru ili tako nesto... mada je i to relativno.
Mogu da menjam id sesije na svakih 20-30 sekundi. Ako korisnik prodje proveru dodelim novi id sesije. Ali kada neko pokupi kolacice od zrtve i prodje sa njima i kod njega ce se promeniti id i sve dalje normalno kao da je on pravi vlasnik kolacica. Jedino da se loguje svaki put kada otvara stranicu :)
Kontam da sve sto mogu da ucinim (a da pri tom budem prilicno siguran) je da sprecim vec logovanog korisnika da menjajuci vrednosti za username u kolacicima postavi komentar u tudje ime i to sam vec postigao (mislim :)). Da bi to uradio mora da promeni i ostale parametre da bi se poklopili sa grupom podataka vezanom za izabrani username kao i nacin na koji sam umiksovao sve, zajedno sa random generisanim brojem.

IP adresa, operativni sistem, rezolicija, browser... Vidim da u google analistic da imaju dosta podataka o posetiocima, nisam siguran za sve na koji nacin ih pribaviti, ali u neku ruku nema vajde kada je moguce lazirati ih. Onaj ko pokupi kolacice moze i da napravi detaljan report o racunaru zrtve...
Da li uopste postoji nacin da se prilikom prenosa kolacica na drugi racunar ustanovi da nisu kreirani na tom racunaru, kada je moguce lazirati sve meni poznate podatke koje server preko browsera moze da pokupi?
 
Odgovor na temu

mitke013
As Divljine
Freelancer

Član broj: 231934
Poruke: 338
195.252.79.*



+34 Profil

icon Re: Uglavnom post/get - zastita od nezeljenih unosa i logovanje/prepoznavanje korisnika.21.03.2010. u 14:41 - pre 171 meseci
Mislim da ti je sasvim dovoljno imati nesto poput $_SESSION['userInfo]['IDKorisnika'] = 5 i $_SESSION['userInfo]['Browser'] = 'Mozzila Firefox 3.6' ili slicno. Jos sigurnije je da sacuvas IP adresu korisnika.

Gle; sve hosting kompanije dozvoljavaju menjanje vremena trajanja sesije. Po defaultu je 20 min, a ti mozes da smanjis na recimo 5. Znaci; ako neko dodje i sedne za zrtvin kompjuter, ima svega 5 minuta da sa tim cookijem ode za neki drugi komp i odatle napravi problem. Mala verovatnoca.

Eventualno u $_SESSION ubacis i info o browseru, IP adresu... cisto za svaki slucaj. Ako i neko ukrade session_cookie, dovoljno je proveriti IP. $_COOKIES ti zaista ne trebaju.

Jos jedno resenje. Stavis vreme trajanja sesije na svega 90 sekundi. Javascripta ce preko ajax-a na svaki minut da 'pinguje' neku php skriptu, cime produzava vreme trajanja $_SESSION-a.

Sad ce neko reci; a sta ako neko ima iskljucenu JS. Iskreno, ja nisam video nikog ko je iskljucuje, pa se ne treba brinuti oko toga.
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-6.sezampro.rs.



+33 Profil

icon Re: Uglavnom post/get - zastita od nezeljenih unosa i logovanje/prepoznavanje korisnika.21.03.2010. u 16:24 - pre 171 meseci
Citat:
mitke013: Jos sigurnije je da sacuvas IP adresu korisnika.

Pa možda jeste sigurnije, ali problem je to što neki ISP-ovi koriste dinamičke IP adrese, odnosno, tkz. "rotirajuće" proxy-je, i onda može da se desi da tako kreiran model za autentifikaciju vidi različitu IP adresu za istog korisnika, što za rezultat ima klasifikovanje tog korisnika kao neautentifikovanog. Isti problem se javlja i sa mobilnim uređajima, koji takođe mogu da menjaju svoju IP adresu.
 
Odgovor na temu

mitke013
As Divljine
Freelancer

Član broj: 231934
Poruke: 338
195.252.79.*



+34 Profil

icon Re: Uglavnom post/get - zastita od nezeljenih unosa i logovanje/prepoznavanje korisnika.21.03.2010. u 16:41 - pre 171 meseci
Citat:
Nikola Poša: Pa možda jeste sigurnije, ali problem je to što neki ISP-ovi koriste dinamičke IP adrese, odnosno, tkz. "rotirajuće" proxy-je, i onda može da se desi da tako kreiran model za autentifikaciju vidi različitu IP adresu za istog korisnika, što za rezultat ima klasifikovanje tog korisnika kao neautentifikovanog. Isti problem se javlja i sa mobilnim uređajima, koji takođe mogu da menjaju svoju IP adresu.


Dok je korisnik ulogovan na net, nece mu se menjati IP. Ako pak admin zeli 'remember me' funkcionalnost, ideja pada u vodu.
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-6.sezampro.rs.



+33 Profil

icon Re: Uglavnom post/get - zastita od nezeljenih unosa i logovanje/prepoznavanje korisnika.21.03.2010. u 18:03 - pre 171 meseci
Ne, ja sam baš mislio na promenu IP adrese u toku iste sesije. AOL je npr. konfigurisao svoje proxy servere na taj način. Evo jednog citata sa Wikipedia-e:
Citat:
However, an AOL user editing Wikipedia without an account cannot be uniquely identified as their IP address is shared with hundreds or thousands of other AOL users in their local area since any edits made by them to Wikipedia all appear to originate from the same proxy server. AOL has also configured their proxy servers in such a way that a single user may have their edits to Wikipedia rotated through a pool of proxy servers each time they try to edit a different page. AOL users on dial-up are also allocated a different IP address each time they connect. These factors all make it nearly impossible for us to block a single vandal without causing some "collateral damage" by inadvertently affecting innocent users.

Al' dobro, sa tim provajderom uglavnom nema problema što se Evrope tiče.

A i opet kažem, uvek moraju da se uzmu u obzir i mobilni uređaju, koji isto tako nasumice mogu da menjaju IP između zahteva...
 
Odgovor na temu

mls

Član broj: 210388
Poruke: 64
*.adsl-a-4.sezampro.rs.



+3 Profil

icon Re: Uglavnom post/get - zastita od nezeljenih unosa i logovanje/prepoznavanje korisnika.22.03.2010. u 18:27 - pre 171 meseci
Znaci bez IP jer za "remember me" ima kontra efekat.
Tip browsera cu ubaciti i osvezavati id sesija svakih 5-10 minuta. Ukoliko je proslo vise od recimo 10 minuta bez obzira na poklapanje sa poslednjim id iz baze bice obavezno unosenje samo sifre (username ce prepoznati), a ako je proslo manje samo tiho menjanje id sesije.
Username ce pisati tacno kako jeste, dok ce sifra, tip browsera i neki na random generisan broj biti miksovani i prikazani u md5. Proveru ce proci samo ako se svi podaci poklope sa onima iz baze.
Jel' ovo dovoljno dobro ili da uvedem jos neki parametar?

Jos nesto me zanima. Setio sam se da je nekoliko puta i pored brisanja kolacica, kesa i svega ostalog iz FF... flash player ipak uspevao da prepozna neka podesavanja od predhodnog puta. Nisam siguran na kom je sajtu bilo, ali ako je bitno mogu pokusati po principu probanja da ga nadjem.
Znaci da je flash sacuvao nesto sto nije bilo obrisano prilikom "clear recent history" - cekirane sve stavke. Jel moguce to i kako? Ili sam ja pogresio... mada ne verujem jer nije bilo samo jednom.

[Ovu poruku je menjao mls dana 22.03.2010. u 20:42 GMT+1]
 
Odgovor na temu

kelja

Član broj: 70429
Poruke: 1416
*.dynamic.isp.telekom.rs.



+35 Profil

icon Re: Uglavnom post/get - zastita od nezeljenih unosa i logovanje/prepoznavanje korisnika.22.03.2010. u 19:33 - pre 171 meseci
IP?

A mozda i ovo:
http://www.bestflashanimationsite.com/tutorials/4/
 
Odgovor na temu

mls

Član broj: 210388
Poruke: 64
*.adsl-a-4.sezampro.rs.



+3 Profil

icon Re: Uglavnom post/get - zastita od nezeljenih unosa i logovanje/prepoznavanje korisnika.22.03.2010. u 19:44 - pre 171 meseci
Nije IP, gasio sam komp u medjuvremenu.

Bacio sam pogled na taj link i deluje mi da je bas to to. ;) Probacu veceras da ubacim na sajt koji radim. Verovatno bih morao imati neki banercic radjen u flesu koji osim sto prikazuje nesto postavlja i kolacice u pozadini. Nadam se da cu uspeti.

Hvala. ;)
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1099
*.dynamic.isp.telekom.rs.



+218 Profil

icon Re: Uglavnom post/get - zastita od nezeljenih unosa i logovanje/prepoznavanje korisnika.23.03.2010. u 13:46 - pre 171 meseci
Nema razlike izmedju kukija i sesije u sigurnonosnom smislu.

ID sesije se pamti u kukiju ili ode preko GET-a. Ako imas ID sesije onda ti je isto kao i da si nekome ukrao kuki jer sajt nece praviti razliku jer se prilazi preko id-a.

Zasto se koriste kukiji? Za podatke koji ce ti biti potrebni i kada korisnik recimo sutra dodje na sajt a ne mora biti logovan.

Zasto da koristis sesiju. Za sve podatke koje bi privremeno da pamtis ili dok je korisnik na sajtu

Zasto nije dobro koristiti kukije ako moze da se koristi sesije? Zato sto se kuki salje u header-u sa svakim pozivom stranice, slike, css, js itd.. Sto usporava sajt i povecava protok.
Jednostano zasto da nesto pamtis na korisnikovom racunaru ako bi mogao da pamtis kod tebe na serveru i time poboljsas performanse...

To sto pamtis md5 sifre i takve stvari to nema veze. Uzmem ja taj kuki koji ima id i korisnicko ime i md5 sifre, stavim kod mene na racunar taj kuki i sta ce me spreciti da se ulogujem? Nista.
Necu znati koja je sifra ali ima md5 sifre sto je dovoljno da se ulogujem.

To sto mutis tamo-vamo sa kukijem, krpitovanjem, ovi-oni podaci itd ti nista ne pomaze jer jednostavno ako se uzme kuki nije vazno kako sta si unutra pisao jer ces ti to da prepoznas na serveru
i procitas i shvatis kao regularne podatke.

Mozes da uzmes header-e kao sto su browser, ip i jos neke parametre i od toga napravis md5 i budes sigurniji da je to taj korisnik.
Ali opet ja mogu da ti posaljem iste header-e sa mog racunara iako nemam istu ip i browser ali to je donekle sigurnija varijanta od puke - jednostavne kradje kukija odnosno sesije.
Ovo samo zakomplikuje stvari ali opet nije perfektno resenje. Bolje jeste ali ne dovoljno za neku dobru sigurnost. Moras da obrati i tu paznju jer neki provajderi
menjaju header-e, ip adrese kod svakog tvog zahteva za konekciju. Recimo slike skides preko jednog servera, css preko dugog, html jedno preko treceg a drugi put preko nekog petog a ti dobijas normalno
ono sto se zahtevao ali na php serveru kao da dolaze zatevi od tebe jednog ali sa vise racunara (ne znam kako drugacije da objasnim). Ovo je retkost da tako provajderi rade ali neki najveci provajderi
u Americi bas tako rade. Tako da ti opet ova bolja varijanta ispada mnogo losije jer nije primenjiva.

Jedina prava sigurnost koja jos uvek ne moze da se provali (mislim, moze ali nije realno da ce neko da ti provaljuje) je da koristis https protokol.

A filozofije kako i sta da smestis podatke u kuki a da budu sigurno je gubljenje vremena. Za logovanje koristi sesiju a pamti koje hoces podatke i kako hoces.
Da napomenem da i sesiji moze da se pridje ako se na serveru nalazi vise sajtova i server nije dobro podesen.
[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

mls

Član broj: 210388
Poruke: 64
*.adsl-a-1.sezampro.yu.



+3 Profil

icon Re: Uglavnom post/get - zastita od nezeljenih unosa i logovanje/prepoznavanje korisnika.23.03.2010. u 18:39 - pre 171 meseci
Vlado, hvala na iscrpnom ogovoru. Sada je i meni sve to jasno. Nemam mnogo izbora, ili kolacice i sesija ili da sa svakim novim otvaranjem strane trazi logovanje.
Citat:
VladaSu
To sto pamtis md5 sifre i takve stvari to nema veze. Uzmem ja taj kuki koji ima id i korisnicko ime i md5 sifre, stavim kod mene na racunar taj kuki i sta ce me spreciti da se ulogujem? Nista.
Necu znati koja je sifra ali ima md5 sifre sto je dovoljno da se ulogujem.

To sto mutis tamo-vamo sa kukijem, krpitovanjem, ovi-oni podaci itd ti nista ne pomaze jer jednostavno ako se uzme kuki nije vazno kako sta si unutra pisao jer ces ti to da prepoznas na serveru
i procitas i shvatis kao regularne podatke.


Ima tu jedna caka. Random broj je takodje upisan u bazi i generise se prilikom svakog logovanja. Tako da ako se korisnik ponovo loguje stari kolacici nisu upotrebljivi. Mislim da cu staviti da se taj random broj osvezava svaki put kada korisnik prodje proveru (a to je pri svakom ucitavanju bilo koje stranice) i samim tim da se osvezavaju i kolacici (id sesije je vec udesen da se obnavlja). U ovom slucaju ako neko dodje do kolacica ima vremena da ih iskoristi sve dok pravi korisnik ponovo ne posalje zahtev za neku stranicu.
Nije sto posto sigurna zastita ali koliko-toliko doprinosi sigurnosti. Na kraju... ako neko ukrade kolacice velike su sanse da moze da postavi i keylogger pa da dobije username i sifru pri cemu mu kolacici nisu potrebne. Nije moja krivica ako podaci na racunaru korisnika nisu sigurni.

Imam sad jedno pitanje. Da li u ovom slucaju moze doci do neke greske ako korisnik otvori nekoliko stranica u par tabova i samim tim salje u istom momentu nekoliko zahteva... sto znaci osvezavanje kolacica u teoretski istom trenutku. Prakticno te zahteve ce deliti vremenski interval od nekoliko mililisekundi, ali mozda ipak moze da dodje do neke greske tipa prvi zahtev osvezi kolacice i drugi isto... upisu u bazu broj ali treci vidi broj od prvog a kolacice od drugog zahteva?


edit:
Nadam se da nisam dosadan. Pomenuo si podesavanje servera i sigurnost sesije. Sta je zapravo ono sto onemogucava petljanje sa sesijom, tj. na sta da obratim paznju da bude u redu kako bi sesija bila sigurna?
i jos nesto, ako nisam u mogucnosti da sve bude https, da li moze samo admin panel? Vidao sam neke sigurne veze preko drugog sajta... kako to funkcionise?

edit2:
mysql_real_escape_string sam ubacio svuda gde se javlja post i get. Medjutim hteo bih da komentari koji se ostavljaju a sadrze neke sporne linije i kombinacije karaktera budu tacno takvi kakvi se unesu.
Za sada ako ukucam ' or ''=' posle kada se prikazuje komentar vidi se \' or \'\'=\' . Hteo bih da se vidi normalno, ali bez uklanjanja \ pre ispisivanja jer se moze ukloniti nesto sto zapravo treba da bude tu i sto je bilo u mementu upisivanja u bazu.
Kako to da izvedem?

[Ovu poruku je menjao mls dana 23.03.2010. u 20:01 GMT+1]

[Ovu poruku je menjao mls dana 23.03.2010. u 20:03 GMT+1]
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1099
*.dynamic.isp.telekom.rs.



+218 Profil

icon Re: Uglavnom post/get - zastita od nezeljenih unosa i logovanje/prepoznavanje korisnika.23.03.2010. u 21:55 - pre 171 meseci
Citat:
Ima tu jedna caka. Random broj je takodje upisan u bazi i generise se prilikom svakog logovanja. Tako da ako se korisnik ponovo loguje stari kolacici nisu upotrebljivi.

To ti se svodi na isto kao sto se generise id sesije.

Citat:
Mislim da cu staviti da se taj random broj osvezava svaki put kada korisnik prodje proveru (a to je pri svakom ucitavanju bilo koje stranice) i samim tim da se osvezavaju i kolacici (id sesije je vec udesen da se obnavlja). U ovom slucaju ako neko dodje do kolacica ima vremena da ih iskoristi sve dok pravi korisnik ponovo ne posalje zahtev za neku stranicu.

Bolje resenje samo ako imas ajax na stranici onda moze da dodje do problema. Browseri mogu istovremeno 2 ajax zahteva da opsluzuju pa kada posaljes ajax 1 sa radnom brojem 5 u bazi promeni taj random na 3
pozoves ajax 2 koji salje broj 5 i u medjuvremeno dobijes da je random 3 ali dzaba kada si posalo random 5.

Citat:
Na kraju... ako neko ukrade kolacice velike su sanse da moze da postavi i keylogger

Sanse su male da moze i da postavi keylogger.

Citat:
IPrakticno te zahteve ce deliti vremenski interval od nekoliko mililisekundi

Nisu u pitanju milisekundi vec sekundi, tj vreme za koje treba da se primi response header.

Citat:
Sta je zapravo ono sto onemogucava petljanje sa sesijom..

Dozvole korisnika.

Citat:

mysql_real_escape_string sam ubacio svuda gde se javlja post i get. Medjutim hteo bih da komentari koji se ostavljaju a sadrze neke sporne linije i kombinacije karaktera budu tacno takvi kakvi se unesu.
Za sada ako ukucam ' or ''=' posle kada se prikazuje komentar vidi se \' or \'\'=\' . Hteo bih da se vidi normalno, ali bez uklanjanja \ pre ispisivanja jer se moze ukloniti nesto sto zapravo treba da bude tu i sto je bilo u mementu upisivanja u bazu.
Kako to da izvedem?

Mislim da si to nesto drugo zeznuo http://php.net/manual/en/function.get-magic-quotes-gpc.php

[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

mls

Član broj: 210388
Poruke: 64
*.adsl-a-3.sezampro.rs.



+3 Profil

icon Re: Uglavnom post/get - zastita od nezeljenih unosa i logovanje/prepoznavanje korisnika.23.03.2010. u 22:35 - pre 171 meseci
Za kolacice i keylogger znam pouzdano. Sve zavisi na koji nacin se pokusavaju dobaviti, a mi verovatno ne mislimo na isti.
Znam po nesto o ovome, svojevremeno su me vise zanimale destruktivne nego konstruktivne radnje u kojima nije bilo obavezno da se koristi browser. U svakom slucaju manje znacajno za celu pricu posto nije moja briga da li ce se nesto uzeti sa racunara koji nije moj.

Zahteve dele milisekunde. Mozda nisam jasno objasnio kada sam pomenuo tabove. Evo detaljnije. Korisnik dodje, uloguje se i onda brzo otvori nekoliko tabova kao sto ja radim sa srednjim klikom na misu. 4-5 komada se posalje za jednu sekundu i sever ih prima u vremenskim intervalima koji su manji od sekunde i takodje response header se salje u istim vremenskim intervalima a vreme kada pocinje slanje nema veze jer se predpostavlja da je potrebno odprilike podjednako za svaki da do slanja dodje.
No dobro... pitanje je bilo: moguca greska u tom slucaju i kako da se osiguram da ce sve proci kako treba. Pri prvom zahtevu se generise jedan random broj i setuju kolacici prema njemu, drugi radi isto... a treci trazi radnom broj od drugog jer je taj nasao u bazi i nalazi kolacice prema prvom jer drugi zahtev jos nije postavi kolacice prema svom random broju.

Za poslenje vezano za mysql_real_escape_string nisam nista zeznuo jer sam samo mysql_real_escape_string koristio i uradjeno je ono sto je predvidjeno. Medjutim ja hocu da kada ispisuje komentar nema kosih crta tamo gde su uz pomoc mysql_real_escape_string dodate. Pogledacu link koji si ostavio...

Tnx u svakom slucaju.
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-1.sezampro.yu.



+33 Profil

icon Re: Uglavnom post/get - zastita od nezeljenih unosa i logovanje/prepoznavanje korisnika.24.03.2010. u 09:43 - pre 171 meseci
Citat:
mls: Za poslenje vezano za mysql_real_escape_string nisam nista zeznuo jer sam samo mysql_real_escape_string koristio i uradjeno je ono sto je predvidjeno. Medjutim ja hocu da kada ispisuje komentar nema kosih crta tamo gde su uz pomoc mysql_real_escape_string dodate. Pogledacu link koji si ostavio...

Kose crte nisu posledica korišćenja mysql_real_escape_string() funkcije, već uključeno magic_quotes_gpc PHP podeševanje, koje od PHP 5.3.0 označeno kao "deprecated", u v6.0 će biti potpuno uklonjeno. Kada je uključena, ta opcija automatski escape-uje sve podatke iz iz nekog HTTP zahteva ($_GET, $_POST, $_COOKIE, itd.), drugim rečima, isto ono što bi moglo ručno da se odradi sa addslashes() funkcijom. Da bi uklonio te kose crte koristi funkciju stripslashes(). Najbolja varijanta je da jednostavno isključiš to podešavanje...
 
Odgovor na temu

mls

Član broj: 210388
Poruke: 64
*.adsl-1.sezampro.yu.



+3 Profil

icon Re: Uglavnom post/get - zastita od nezeljenih unosa i logovanje/prepoznavanje korisnika.24.03.2010. u 18:14 - pre 171 meseci
Evo ovako.
1.
Code:
$text = mysql_real_escape_string($_POST['komentar']);
mysql_query("INSERT INTO comments (username, text, date) VALUE ('$username', '$text', '$date')");

2.
Code:
$text = $_POST['komentar'];
mysql_query("INSERT INTO comments (username, text, date) VALUE ('$username', '$text', '$date')");


Izostavio sam username i date jer nije bitno za ovu pricu.

U polje za pisanje komentara unosi se ' or ''=' (ovde nece da skodi... bitno je sta se desava sa ' )

U prvom slucaju u bazu je upisano:
Code:
\' or \'\'=\'

A u drugom:
Code:
' or ''='


Kao sto napisah ranije hteo bih da bude uneto kao sto je u drugom slucaju ali da budem siguran da nece postojati mogucnost za zavrzlame kao sto su php injection.

edit:
E da, php je 5.2.6
 
Odgovor na temu

[es] :: PHP :: Uglavnom post/get - zastita od nezeljenih unosa i logovanje/prepoznavanje korisnika.

Strane: 1 2

[ Pregleda: 5074 | Odgovora: 22 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.