Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Cybersecurity: email, utenti e agenti IA, la nuova visione di Proofpoint
Cybersecurity: email, utenti e agenti IA, la nuova visione di Proofpoint
Dal palco di Proofpoint Protect 2025 emerge la strategia per estendere la protezione dagli utenti agli agenti IA con il lancio di Satori Agents, nuove soluzioni di governance dei dati e partnership rafforzate che ridisegnano il panorama della cybersecurity
Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti
Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti
Dopo alcuni anni di assenza dai cataloghi dei suoi televisori, Hisense riporta sul mercato una proposta OLED che punta tutto sul rapporto qualità prezzo. Hisense 55A85N è un televisore completo e versatile che riesce a convincere anche senza raggiungere le vette di televisori di altra fascia (e altro prezzo)
Recensione Borderlands 4, tra divertimento e problemi tecnici
Recensione Borderlands 4, tra divertimento e problemi tecnici
Gearbox Software rilancia la saga con Borderlands 4, ora disponibile su PS5, Xbox Series X|S e PC. Tra le novità spiccano nuove abilità di movimento, un pianeta inedito da esplorare e una campagna che lascia al giocatore piena libertà di approccio
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 12-11-2004, 10:56   #1
gaglioppo
Senior Member
 
L'Avatar di gaglioppo
 
Iscritto dal: Sep 2002
Città: Monza
Messaggi: 598
[database,php,html] dubbi sicurezza

ci riprovo.

Ho un database in mysql e lo gestisco con pagine php create da me. Tutto ok, nessun problema, però...

premessa:
- passando le variabili da una pagina all'altra nel modo seguente:

wwww.miosito.it/contatti.php?var=12&pippo=13

è chiaro che un utente malizioso potrebbe accedere alla pagina modificando il valore delle variabili, tipo cosi':

wwww.miosito.it/contatti.php?var=66&pippo=76

questo potrebbe portare a delle modifiche inattese sul mio db, qualora all'inizio della pagina non facessi opportuni controlli.

mi chiedo ora:

come posso risolvere?
- c'e' un modo per "oscurare" nella barra degli indirizzi il nome delle variabili?
- anche se le "oscurassi" sarebbe semplicemente catturarle guardando l'html della pagina precedente, come comportarmi?
- in particolare volevo sapere come funzionano praticamente le session, per ora la sintassi mi interessa poco, in teoria potrei risolvere molti problemi con una sola variabile di controllo.
-ci sono differenze di gestione delle session e del passaggio di var da una pagina all'altra, in base al browser usato (ie,opera, mozilla) ?

grazie per l'aiuto
__________________
Nunc est bibendum

Ultima modifica di gaglioppo : 12-11-2004 alle 11:00.
gaglioppo è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2004, 11:14   #2
Blackat
Senior Member
 
L'Avatar di Blackat
 
Iscritto dal: Oct 2004
Città: Acireale
Messaggi: 447
Basta che nei form utilizzi il metodo post invece del metodo get,
cosi' in teoria l'utente "malizioso" non vedra' "mai" la query che
passi allo script.
Poi se sei costretto ad utilizzare la query string ( cioe' i parametri
che passi nell'indirizzo ) puoi al massimo controllarne la validita'
all'interno dello script. Ad esempio, se nella query string
l'identificatore var deve essere un numero, puoi fare
il controllo se si tratta effettivamente di un numero.
Se poi nella query string hai degli identificatori che modificano
il tuo database, al massimo puoi utilizzare la variabile del server
HTTP_REFER, che contiene praticamente l'indirizzo della pagina
riferita dallo script. A questo punto di basta fare il controllo
se lo script e' stato riferito dal direttamente dal tuo sito oppure qualche
utente smanettone sta cercando di accedere violando la sicurezza
del tuo sito.

Saluti.
Blackat è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2004, 11:27   #3
gaglioppo
Senior Member
 
L'Avatar di gaglioppo
 
Iscritto dal: Sep 2002
Città: Monza
Messaggi: 598
Quote:
Originariamente inviato da Blackat
Basta che nei form utilizzi il metodo post invece del metodo get,
cosi' in teoria l'utente "malizioso" non vedra' "mai" la query che
passi allo script.
..ma dalla pagina precedente si potrebbe vedere.


Quote:
Poi se sei costretto ad utilizzare la query string ( cioe' i parametri
che passi nell'indirizzo ) puoi al massimo controllarne la validita'
all'interno dello script. Ad esempio, se nella query string
l'identificatore var deve essere un numero, puoi fare
il controllo se si tratta effettivamente di un numero.
avevo già usato questo trucchetto, ma il problema che talvolta non posso effettuare un controllo, nei casi in cui si accettano var numeriche non regolari (tipo compresi in un range, maggiori di o simili)


Quote:
Se poi nella query string hai degli identificatori che modificano
il tuo database, al massimo puoi utilizzare la variabile del server
HTTP_REFER, che contiene praticamente l'indirizzo della pagina
riferita dallo script. A questo punto di basta fare il controllo
se lo script e' stato riferito dal direttamente dal tuo sito oppure qualche
utente smanettone sta cercando di accedere violando la sicurezza
del tuo sito.
ecco, qua non ti seguo, di che controllo si tratta?

Per quanto riguarda le sessioni non mi sai dire come funzionano?

Grazie tantissime!
__________________
Nunc est bibendum
gaglioppo è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2004, 11:34   #4
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Effettuare i controlli sui dati inseriti è una cosa da fare comunque. Come ti hanno gia detto puoi usare POST quando puoi ma non è sempre possibile. anche il controllo del referer puo essere una cosa da mettere su. In ogni caso sono due tecniche facilmente scavalcabili da chi ha un minimo di esperienza. Se vuoi andare sul sicuro, ed evitare sql-injection, cerca anche di rifiutare stringhe con tutte qui comandi SQL che possono rovinare il database.

ciao
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2004, 13:21   #5
gaglioppo
Senior Member
 
L'Avatar di gaglioppo
 
Iscritto dal: Sep 2002
Città: Monza
Messaggi: 598
non ci siamo ancora, l'utente deve poter modificare i dati di una tabella ma si dovrebbe attenere a quello che io gli impongo, non deve cambiare il valore delle var a suo piacimento.

-il problema non è solo "rovinare" il database, ma può essere semplicemente cambiare alcuni valori numerici.

- il fatto di usare post non mi aiuta assolutamente perchè, ripeto, si potrebbe accedere alla pag precedente in html e vedere il nome delle variabili (anche di quelle nascoste di tipo hidden).

-il controllo non è sempre possibile, questa è la realtà e nel mio caso il controllo non è attuabile.

grazie per l'aiuto, spero di arrivare gradualmente ad una soluzione.

a presto
__________________
Nunc est bibendum
gaglioppo è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2004, 13:37   #6
SteR9
Senior Member
 
L'Avatar di SteR9
 
Iscritto dal: Jun 2002
Città: Milano
Messaggi: 959
ma si tratta di un'area per utenti registrati?
il metodo post non è comunque sicuro perchè non ci vuole niente a scoprire le variabili che vengono passate con i relativi valori...
SteR9 è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2004, 14:22   #7
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da SteR9
il metodo post non è comunque sicuro perchè non ci vuole niente a scoprire le variabili che vengono passate con i relativi valori...


Devi:

- controllare sempre e comunque i valori passati ed il loro contenuto
- controllare ogni volta se quell'utente dispone dei diritti necessari per fare l'operazione che sta cercando di fare
- memorizzare nella sessione lo stato corrente dell'utente:
ad esempio se si trova in una pagina in cui deve confermare una cancellazione in un database ci scrivi "PRECANC"...nell'azione successiva avvierai la cancellazione solo se trovi quel valore nella sessione (valore poi da eliminare)...e così via...per ogni azione pericolosa...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2004, 14:42   #8
gaglioppo
Senior Member
 
L'Avatar di gaglioppo
 
Iscritto dal: Sep 2002
Città: Monza
Messaggi: 598
Quote:
Originariamente inviato da cionci


Devi:

- controllare sempre e comunque i valori passati ed il loro contenuto
- controllare ogni volta se quell'utente dispone dei diritti necessari per fare l'operazione che sta cercando di fare
- memorizzare nella sessione lo stato corrente dell'utente:
ad esempio se si trova in una pagina in cui deve confermare una cancellazione in un database ci scrivi "PRECANC"...nell'azione successiva avvierai la cancellazione solo se trovi quel valore nella sessione (valore poi da eliminare)...e così via...per ogni azione pericolosa...
Grazie cionci,

quindi se creo una session di nome VERIFY e verifico sempre se vale 1 prima di toccare significamente il db potrei risolvere?

e mettiamo caso che io crei una var con GET o POST e una di controllo chiamo la prima VARIABIL e la seconda VERIFY, qualcuno modificando questo link

wwww.sitomio.it/contatti?VARIABIL=3 (con Verify come sessione)

in

wwww.sitomio.it/contatti?VARIABIL=3&Verify=1

naturalmente supponendo conosca il nome della session

cosa otterrebbe? un errore?

grazie ancora
__________________
Nunc est bibendum
gaglioppo è offline   Rispondi citando il messaggio o parte di esso
Old 12-11-2004, 14:59   #9
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Questo è proprio uno dei motivi per cui hanno tolto le variabili autoglobali per post, get e sessione...
Le variaibli devi recuperarle dai rispettivi vettori $_SESSION e $_POST...
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Cybersecurity: email, utenti e agenti IA, la nuova visione di Proofpoint Cybersecurity: email, utenti e agenti IA, la nuo...
Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti Hisense A85N: il ritorno all’OLED è convi...
Recensione Borderlands 4, tra divertimento e problemi tecnici Recensione Borderlands 4, tra divertimento e pro...
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale TCL NXTPAPER 60 Ultra: lo smartphone che trasfor...
Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming Un fulmine sulla scrivania, Corsair Sabre v2 Pro...
Addio Amazon? ChatGPT ora ti fa comprare...
YouTube chiude la causa con Trump: accor...
Avio: contratto da 40 milioni di € da ES...
Claude Sonnet 4.5, il nuovo modello di A...
Silent Hill f è un successo: gi&a...
Nuova Jeep Compass: aperti i preordini p...
La PS5 Slim con SSD più piccolo s...
Zero combustibili fossili e controllo qu...
Corsair NAUTILUS 360 RS LCD: raffreddame...
Nuovo record nel mondo dei computer quan...
Sony e Universal combatteranno l'IA con....
Il Chips Act europeo attuale è un...
OnePlus 15: debutto globale con design '...
Amazon Prime: addio alla prova gratuita ...
Windows 11 25H2: guida passo-passo per l...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 05:30.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v