[RISOLTO]Sicurezza attacchi con $_session: come viene gestita nella trasmissione server client ?

Emanuele.Basilicata

Nuovo Utente
30 Ott 2013
21
0
1
Buongiorno a tutti,

relativamente al titolo vi pongo questo esempio:

ho un file.html dove ospito una form(metoto POST e azione file.php)
ho un file.php che elabora i dati della form

In quest'ultimo apro la sessione.

Vorrei sapere:
1- quando php memorizza la variabile $_session nel browser del client : dopo aver ricevuto la form ?
2- in rete l'invio della variabile è catalogata come cookie da programmi come wireshark ?
3- stesso domanda come sopra per i token passati con campi hidden

Chiedo questo ai fini di predisporre contromisure per eventuali attacchi di session hijacking.

Di mio ho già predisposto controlli sull'IP.
Ho un database di appoggio per il controllo utenti.
I dati importanti viaggiano in rete criptati.
Le stringhe prima di essere elaborate vengono filtrati con strip_tab ed eliminati di tutti i caratteri che possono essere utlizzati nelle query in modo da evitare altre forme di attacco.

Grazie.

Emanuele
 

Sevenjeak

Utente Attivo
27 Nov 2012
81
2
8
35
sevenjeak.altervista.org
1. Mai, le sessioni sono usate è vengono gestite dal server, al massimo al client gli viene assegnato un id di sessione, ma in ogni caso, le sessioni sono gestite dal server, se mai sono i cookie che vengono salvati sul client, forse fai questa domanda perché ti è capitato di stampare con php qualche sessione, ma il php, una volta elaborato dal server ( php è un linguaggio lato server, ricorda, opera solo sul server, no sul client ) produce sempre codice html, quello viene inviato al client.

2. Non conosco questo programma, non so risponderti.

3. I campi hidden hanno solo la caratteristica di non essere visibile nella pagina, ma sono normale caselle di testo.

Certo è vero che, come dici te, con il session hiacking è possibile violare la sicurezza, ma recuperando il session id, che è inviato dal server a client, ma no le sessioni, che rimangono sul server.

Riguardo il session hiacking di consiglio di dare un'occhiata qui:

http://blog.artera.it/programmazione/sicurezza-in-php-session-hijacking
 
Ultima modifica:

Emanuele.Basilicata

Nuovo Utente
30 Ott 2013
21
0
1
Grazie per la risposta ma avrei bisogno di una delucidazione. Sono a conoscenza che php è un linguaggio lato server ma ti o vi chiedo in generale:

quando apri una session php genera un ID che memorizza nella cartella tmp oppure in quella che gli dici tu (ok),

Quando il client invia una nuova chiamata al server come riesce quest'ultimo a sapere che chi chiama è lo stesso che si è logato precedentemente ? tramite il MAC ? o il client invia anche la ID di sessione ?

Forse la mia è una elecubratio assurda ma mi piacerebbe capire perchè da quello che leggo, è proprio la sottrazione della session_id che genera un attacco session hijacking previo avvelenamento delle tabelle ARP.

Riguardo i campi hidden sono a conoscenza che sono normali caselle di testo ma se vuoi inviare un token nella form sempre per questioni di sicurezza, mi piaceva sapere come i token veniva visto in rete da programmi che spiano.

Potrei sicuramente installarmi dei programmi (e un server virtuale) e simulare un attacco ma se ciò che penso è sbagliato in partenza perdo tempo.

Saluti.

Emanuele
 

Sevenjeak

Utente Attivo
27 Nov 2012
81
2
8
35
sevenjeak.altervista.org
L'id di sessione viene salvato dal client in un cookie chiamato PHPSESSID, non so se ci hai fatto caso guardando il link che ti ho dato, a questo punto il php dice al server di recuperare il valore di questo cookie, ed a questo punto il php recupera la sessione, ma questo accade solamente tramite il recupero del cookie PHPSESSID, l'indirizzo MAC ( ip privato ), ip che identifica univocamente il computer non viene trasmesso in internet, almeno che te non usi un linguaggio lato client.

In intenet, da quello che so io, più che il MAC (indirizzo privato) si usa l'ip pubblico, ovvero l'indirizzo del dispositivo che ti permette la connessione ad internet ( modem, router, ecc.. ).

Riguardo quel'articolo che ti ho postato, certo che l'attacco si esegue sottraendo il cookie di sessione, e a quel punto viene riconosciuto come proprietario della sessione, ma li c'è anche scritto, cosa che non ho mai provato di persona, come fare ad aggiornare l'id di sessione, cosa che ha mia parere, poi non saprei, conviene, certo, come dici te puoi sempre controllare l'ip ( no il Mac ), ma non te lo consiglierei il controllo sull'ip, ad esempio, se l'isp associa un'ip dinamico all'utente, a questo punto come fai?

Per quando riguarda come si comportano i programmi sniffer non saprei che dirti, non ne ho mai provato uno, l'unica cosa è ciò che hai detto te, provare ad effettuare un'attacco te, del resto è la miglior cosa da fare, chi sa puoi trovare anche altre falle del sistema.
 

Emanuele.Basilicata

Nuovo Utente
30 Ott 2013
21
0
1
ok ci stiamo avvicinando al nocciolo del problema.

Vorrei farti riflettere su quanto mi hai scritto: "L'id di sessione viene salvato dal client in un cookie chiamato PHPSESSID...."

DOMANDA: se l'ID di sessione viene assegnato dal server quand'è che il client riceve l'ID per memorizzarlo su PHPSESSID ?

Rifaccio il percorso. Ho un file.html che contiene una form con metodo POST e action file.php .......invio al server....quest'ultimo assegna l'ID di sessione ......A QUESTO PUNTO IL CLIENT NON CONOSCE L'ID quindi:

chi e quando questo ID viene memorizzato dal client su PHPSESSID ?

Io credo che sia il server la prima volta che invia la risposta al client alla form precedentemente "spedita" e, stante a quanto mi hai scritto: "......in un cookie chiamato PHPSESSID... ", l'ID di sessione viene passata come un cookie.
A questo punto (se fosse vero quanto soprascritto) nella rete l'ID di sessione è rintracciabile ma:

quanto è distinguibile da altri cookie ? è possibile scriptarlo ?

Riguardo all'articolo di cui mi hai allegato il link ti ringrazio ma l'avevo già letto in precedenza come un altra decina su i vari tipi di attacchi.

In ultima: per riaggiornare la session Id si usa session_regenerate_id.

Sto comunque sto prendendo in esame la possibilità di crearmi un ambiente di lavoro per capire bene come funzionano questi analizzatori di rete.

Grazie.

Emanuele
 

Emanuele.Basilicata

Nuovo Utente
30 Ott 2013
21
0
1
ok risolto trovate conferme

E' come pensavo :

quando si apre una sessione in PHP, il server genera una ID che registra su una directory e contemporaneamente la stessa ID viene depositata sul browser del client associandola alla variabile globale $PHPSESSID che di fatto diverrà un cookie. Ogni qualvolta viene inviata una transazione tra client e server e precedentemente è stata aperta una sessione, la ID viaggia in rete.


Grazie.

Emanuele
 
Discussioni simili
Autore Titolo Forum Risposte Data
L (risolto) MySQL 0
B getElementById su piu id(Risolto) Javascript 7
L Esercitarsi con Js [RISOLTO] Javascript 4
C [RISOLTO]Inserimento variabile php in input html PHP 20
L risolto visualizzazione e ordinamento dati PHP 1
moustache [RISOLTO] SQL PHP IIS PHP 8
Sergio Unia Ricezione email con destinatari multipli [Risolto] PHP 2
L update tabelle in php mysql [risolto] PHP 6
M Semplice visualizzatore di immagini [risolto con plugin wp] PHP 7
L [RISOLTO] Stampa a video risultato count in html PHP 13
L [RISOLTO] Eliminare una discussione creata PHP 3
tomorc [HTML] Problema con scroll bar (risolto) HTML e CSS 0
A [PHP] Problema query insert [RISOLTO] PHP 14
B [PHP] recuperare IP dei server in load balancing [RISOLTO] PHP 3
K [RISOLTO] Problema Griglia Php+Mysql PHP 13
S [RISOLTO] aggiorna tabella da select option asp classic Classic ASP 7
elpirata [RISOLTO][Javascript] Datapicker e autocompletamento campo input Javascript 2
elpirata [RISOLTO][Mysql] Problema insert valori apostrofati MySQL 1
elpirata [RISOLTO][Mysql] Contare le occorrenze in un campo tipo varchar MySQL 2
G [MS Access] Gestione biglietti [RISOLTO] MS Access 2
G [MS Access] Casella combinata & Query [RISOLTO] MS Access 4
G [MS Access] Query mese corrente con conteggio [RISOLTO] MS Access 2
M [RISOLTO]Windows media player non mi funziona più su win 10 pro 64 bit Windows e Software 2
C [RISOLTO][PHP] Errore di sintassi PHP 8
IT9-Gpp [RISOLTO] Leggere variabile restituita da success Ajax 3
Kolop [RISOLTO][PHP] Problema Pagination PHP 2
C [RISOLTO][PHP] Funzione ONclick PHP 14
C [RISOLTO][PHP] Conteggio righe di una tabella PHP 4
N [PHP] Utilizzo variabili di sessione [Risolto] PHP 13
Tommy03 [RISOLTO][PHP] Webserver o devserver? PHP 2
Sergio Unia Recupero dati da una vecchia versione MySql [Risolto] MySQL 4
spider81man [PHP] Problemi cancellazione dato su DB [RISOLTO] PHP 1
A [RISOLTO]Inserimento Immagini da pc a MySql PHP 15
A [PHP] RISOLTO Invio Mail con Tabella PHP 2
felino Risolto - [Wordpress][WooCommerce] PayPal Checkout e campi di fatturazione WordPress 2
elpirata [PHP][RISOLTO] Sommare gli importi estratti da un ciclo while PHP 3
elpirata [PHP][RISOLTO] Effettuare la somma dei tempi di lavorazione PHP 3
elpirata [PHP] [RISOLTO]Sovrascrivere testo in una tabella PHP 2
A [RISOLTO]Recuperare dati inviati con json tramite php PHP 4
C [RISOLTO][PHP] Passaggio variabili senza refresh di pagina PHP 7
elpirata [PHP][RISOLTO] Errore di tipo Notice: Undefined index - Come risolvere quando si hanno tante var PHP 10
S Problema in PHP per invio file XML - RISOLTO- PHP 8
A [Javascript] [RISOLTO] Doppio "submit", in uno stesso "Form" , che puntino ad "action" diversi Javascript 1
marino51 [Risolto]videochat di messenger ha smesso di funzionare sul telefonino Smartphone e tablet 1
A [Javascript] [HTML] RISOLTO...Allungare un box all'apertura della pagina No Mouse over Javascript 9
ken_korn [Javascript][Risolto] browser.tab.Tabs.favIconUrl non funziona Javascript 5
A [RISOLTO] HighChart e PHP PHP 4
A [RISOLTO] PHP Selezionare tutti i file con stessa estensione PHP 2
A [RISOLTO] Table elaborata da codice PHP con dati da DB non visualizzata in IFRAME PHP 15
T [Photoshop] Problema creazione pennello personalizzato [RISOLTO] Photoshop 3

Discussioni simili