Oracle auditing con oci_set_client_identifier

di Gianni Tomasicchio - 11 settembre 2010

La maggior parte delle applicazioni web scritte in PHP si connette al database utilizzando sempre le stesse credenziali, indipendentemente dall'utente realmente loggato. Il database quindi non può distinguere un utente da un'altro e quindi tutta la gestione dei permessi è necessariamente affidata al codice dell'applicazione. Se un baco del software o una falla di sicurezza permettessero di aggirare la gestione dei permessi dell'applicativo, il database non potrebbe contrastare in alcun modo l'accesso indiscriminato ai dati.

Non si tratta solo di un problema di sicurezza, le limitazioni di questo approccio sono tante, a partire dall'impossibilità di realizzare nel database un sistema di logging delle transazioni eseguite dai diversi utenti. Tale sistema è indispensabile per poter risalire all'utente che ha, ad esempio, modificato un certo record.

 

Gli utilizzatori del database di Oracle possono però confidare sulla funzione oci_set_client_identifier che permette di inviare al database un identificativo dell'utente reale al quale associare le query che si stanno per effettuare. In questo modo la connessione al DB viene sempre effettuata con le stesse credenziali ma le query vengono associate all'utilizzatore dell'applicativo.

Per maggiori informazioni rimando ad un articolo pubblicato su Oracle Technology Network che riporta anche un'applicazione di esempio.

Effettua l'accesso o registrati per inserire un commento