DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   (X)HTML, JavaScript, DHTML, XML, CSS (http://www.devprotalk.com/forumdisplay.php?f=8)
-   -   ajax & security (http://www.devprotalk.com/showthread.php?t=2141)

kodi 28. 12. 2006. 21:50

ajax & security
 
ovako, imam jednu skriptu gde postoji klasicno glasanje. znaci user odabere vote na skali od 1-10 klikne submit i to je to ...njegov glas ide u bazu..ajax automatski updatuje average score... vote button se disable-uje.. sve radi ok

medjutim zanima me zastita. tj u mom slucaju samo registrovani useri mogu da glasaju. Za sada sam to resio tako sto sa JS proveravam da li postoji cookie, a u php skripti proveravam referer (da li poziv dolazi sa stranice, ili neko spolja pokusava da pozove stranicu i fejkuje vote)

kao vi resavate to u vasim aplikacijama?
kako proveravate da li je user ulogovan pre nego sto mu dozvolite da uradi nesto sa JS/ajax ???

MorenoArdohain 28. 12. 2006. 21:56

A sto ne stavis u tu php skriptu da proverava cookie?

zextra 28. 12. 2006. 22:19

Provera referrera je vrlo prividna zastita, bolje se fokusiraj na ovo sto Moreno kaze. Proveravaj da li je korisnik ulogovan (kao sto to inace radis), i u slucaju da nije, printaj neki nefunkcionalan javascript kod, koji se, naravno, pod normalnim okolnostima nikad nece izvrsavati.

noviKorisnik 28. 12. 2006. 22:38

Security je uvek stvar serverske strane.

dee 28. 12. 2006. 22:40

Citat:

Originalno napisao zextra
Provera referrera je vrlo prividna zastita, bolje se fokusiraj na ovo sto Moreno kaze. Proveravaj da li je korisnik ulogovan (kao sto to inace radis), i u slucaju da nije, printaj neki nefunkcionalan javascript kod, koji se, naravno, pod normalnim okolnostima nikad nece izvrsavati.


zasto nefunkcionalan javascript kod? ima li neki razlog za to?

inace, nemam iskustva sa ajaxom; upravo se spremam slagati prvi sajt gdje cu ga upotrijebiti, ali mi se ne cini nista posebno sa stajalista sigurnosti. ono zlatno staro pravilo -> ne vjeruj klijentu, provjeri sve na serveru (ne na klijentu). i u skladu s tim daj rezultat.

kodi 28. 12. 2006. 23:07

Citat:

Originalno napisao MorenoArdohain
A sto ne stavis u tu php skriptu da proverava cookie?

za sada sam resio ovako: provera cookia u php i JS i uporedjivanje ta dva + referer ...
valjda ce biti dovoljno majku mu :)

ivanhoe 29. 12. 2006. 00:59

a sto ne proveravas kao sto proveravas inace usere (kad kazes da imas registrovane korisnike pretpostavljam da nekako proveravas da su registrovani, neki login pa onda pratis session ili tako nesto?). Znaci isto kao sto proveris da li je neko ulogovan kad mu prikazujes neku njegovu "users-only" stranu, potpuno isto tako to radis i iz ajaxa, nema apsolutno nikakve razlike u logici kojom radis proveru...

zextra 29. 12. 2006. 01:32

Citat:

Originalno napisao dee
zasto nefunkcionalan javascript kod? ima li neki razlog za to?

inace, nemam iskustva sa ajaxom; upravo se spremam slagati prvi sajt gdje cu ga upotrijebiti, ali mi se ne cini nista posebno sa stajalista sigurnosti. ono zlatno staro pravilo -> ne vjeruj klijentu, provjeri sve na serveru (ne na klijentu). i u skladu s tim daj rezultat.

Da ne zalazim u detalje moguce implementacije - recimo samo da ako si ulogovan, i posaljes request koji bi ti inace vratio kod koji radi nesto konkretno, u slucaju da nisi ulogovan, sasvim je logicno da ni taj kod koji dobijes ne treba da radi nesto konkretno, zar ne?

Ivan 29. 12. 2006. 03:50

@kodi

Dobio si odgovore, dakle klasicno proveravanje usera i swichovanje koda.

Dodatno sta treba da proverevas je da li ti je user prosledio validnu varijablu (u zavisnosti od implementacije skripte moze se desiti da ti posalje neku varijablu u zahtevu koja moze dovesti do XSS ili SQL injectiona).

I na kraju nevezano toliko za pitanje ali opet moze da koristi: race condition.

dee 29. 12. 2006. 04:27

Citat:

Originalno napisao zextra
Da ne zalazim u detalje moguce implementacije - recimo samo da ako si ulogovan, i posaljes request koji bi ti inace vratio kod koji radi nesto konkretno, u slucaju da nisi ulogovan, sasvim je logicno da ni taj kod koji dobijes ne treba da radi nesto konkretno, zar ne?

ma jasno, nego nisam shvatio sto bi vratio ikakav kod uopce? sto ne jednostavno:

PHP kôd:

echo "nije ti dano da vidis."

?


Vreme je GMT +2. Trenutno vreme je 19:29.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.