|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Sicurezza AJAX
Ho un dubbio, siccome con ajax si può controllare un database, e siccome il codice per farlo non è altro che banalissimo javascript, se decidessi di dare la possibilita ad un "super utente" di cancellare e modificare i dati in un database tramite AJAX avrei sicurezza pari a zero vero?
Quello che voglio dire è che studiando il codice javascript che fa la chiamata AJAX si potrebbe capire come funziona lo script(ad esempio php) al quale si appoggia, e quindi poterne fare quello che si vuole, o sbaglio? Sono confuso... ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Con php puoi generare uno script AJAX diverso a seconda dell'utente autenticato. In questo modo solo un utente con i permessi avrà in locale lo script adatto. Ci possono essere ancora problemi di sicurezza (ad esempio lo script rimane nella cache del browser), ma se progetti bene le parti che dialogano puoi gestire tutto quello che riguarda la sicurezza a livello di server (ad esempio sfruttando nuovamente la sessine php per acconsentire determinate operazioni richieste dallo script javascript)...
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jan 2003
Città: Salerno[eboli]
Messaggi: 262
|
puoi avere problemi di sicurezza nella parte javascript poichè può essere manomessa e quindi è consigliabile, come diceva appunto cionci, non demandare alla parte in javascript controlli "delicati". Se proprio vuoi/devi farlo assicurati che lato php ci sia un doppio controllo di tutto quello che viene passato via javascript. In questo modo, tramite php, puoi fare tutto quello che vuoi come lo faresti normalmente senza problemi di sicurezza.
__________________
Asus A7N8X-E De Luxe-DDR PC3000 KINGSTON HYPERX CAS 2-AMD XP 2000@2300-THERMALTAKE VOLCANO7+ -2 X HDD MAXTOR 160 GB-GEXCUBE 9600XT 256 MB-Ho fatto affari con:carmine65,piloz,skazzo,sebezio,marcolinoz,dangermax,bixxio,sicuzzo,sgogeta,sauro... e tanti altri... |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Ok grazie ragazzi
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Scusate se riuppo, ho fatto il mio bel scriptino e ne sono abbastanza soddisfatto.
Volevo sapere, nello script faccio il controllo del referrer e dello stato di un cookie, secondo voi è sufficiente per evitare che lo script sia utilizzato "dall'esterno"? |
![]() |
![]() |
![]() |
#6 | |
Member
Iscritto dal: Mar 2006
Città: Molfetta
Messaggi: 235
|
Quote:
![]() ![]()
__________________
|
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Ti devo smentire purtroppo, le chiamate si fanno anche dall'esterno.
Comunque se mi dice che è il massimo che si può fare sto tranquillo dai. ps.se diffidi metti su uno scriptino php che te lo chiamo ![]() |
![]() |
![]() |
![]() |
#8 | |
Member
Iscritto dal: Mar 2006
Città: Molfetta
Messaggi: 235
|
Quote:
![]()
__________________
|
|
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Bhe il modo non è importante o no?
Cioè il fatto è che si può, questo è il problema... ![]() |
![]() |
![]() |
![]() |
#10 | |
Member
Iscritto dal: Mar 2006
Città: Molfetta
Messaggi: 235
|
Quote:
Comunque il problema non sussiste, è allo script php il compito di verificare se l'utente ha il permesso di cancellare quella determinata tabella e autorizzare o no l'operazione, non al javascript ![]()
__________________
|
|
![]() |
![]() |
![]() |
#11 | ||
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Quote:
Quote:
|
||
![]() |
![]() |
![]() |
#12 |
Member
Iscritto dal: Mar 2006
Città: Molfetta
Messaggi: 235
|
il tuo script amministra direttamente il database, senza un controllo lato server? Se fosse così non ci vuole comunque niente a falsificare il referrer ed il cookie di controllo, e fottere tutto... Il controllo lato server è fondamentale...
__________________
|
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Si amministra il database... azz come possono fare a falsificare il referrer?
E quindi che altri controlli devo fare? Inserisco le sessioni? |
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Scusami ma x controllo lato server che intendi precisamente?
|
![]() |
![]() |
![]() |
#15 | |
Member
Iscritto dal: Mar 2006
Città: Molfetta
Messaggi: 235
|
Quote:
Si può falsificare il referrer semplicemente utilizzando un qualunque linguaggio di programmazione e richiamando lo script php utilizzando gli header opportunamente falsificati... è una cosetta da niente, semplicissimo.
__________________
|
|
![]() |
![]() |
![]() |
#16 |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Ti spiego, il sito è accessibile dopo che si è loggati, una volta loggato viene settato un cookie che lo uso un po' per tutto...
lo uso anche per validare lo script che controlla il database, il quale viene utilizzato tramite ajax. Quindi, una volta loggati, come faccio a ricontrollare sempre se username e password van bene? Uso le sessioni? Ma sono sicure? |
![]() |
![]() |
![]() |
#17 | |
Member
Iscritto dal: Mar 2006
Città: Molfetta
Messaggi: 235
|
Quote:
Così se deve eliminare un database lo script controlla che $_SESSION['admin']=true, mentre se deve inserire un semplice record controlla semplicemente che la sessione sia aperta.
__________________
Ultima modifica di whiles_ : 10-05-2007 alle 21:49. |
|
![]() |
![]() |
![]() |
#18 |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Ok farò così ti ringrazio.
Però questo comporta ovviamente la necessità di riloggarsi se chiudo il browser vero? |
![]() |
![]() |
![]() |
#19 | |
Member
Iscritto dal: Mar 2006
Città: Molfetta
Messaggi: 235
|
Quote:
![]()
__________________
|
|
![]() |
![]() |
![]() |
#20 |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Sapevo che le sessioni duravano solo per il tempo in cui il browser era aperto, una volta chiuso, sessione scaduta.
Comunque mi informo meglio e ho capito che devo puntare sulle sessioni, ti ringrazio intanto! |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 03:26.