Discussione:
utile a tutti: proteggere il file con i logins del db
(troppo vecchio per rispondere)
Mago di Oz
2006-10-09 10:32:31 UTC
Permalink
Come indicato in oggetto sono certo che il quesito sia di interesse
generale.
Secondo voi quali sono le soluzioni migliori per proteggere il file .php con
i logins al dbase? Voi come fate?

E se ho un pannello(costituito da 2 file php) tutto mio da dove inserisco
notizie e altro a parte il non lasciare queste pagine sul server che
soluzioni ci sarebbero per renderle inaccessibili?
Ho sentito parlare di htaccess ma è vincolato a Linux o sbaglio? E' l'unica
soluzione?


ciao e grazie.
Mago di Oz
2006-10-09 10:40:02 UTC
Permalink
Dimenticavo, a proposito di MD5..
se io lo uso per nascondere la mia password di accesso al db, un
malintenzionato non può riuscire ad intercettare il momento in cui viene
decodificata e trasmessa al server?

ri-grazie
IcarusDream
2006-10-09 11:47:43 UTC
Permalink
Non capisco cosa intendi per "proteggere" i file.
L'algoritmo md5 viene processato dallo script engine.
Per intercettare la pass un malintenzionato può fare session
hijacking, ma si ritrova tra le mani la pass criptata.
Post by Mago di Oz
Come indicato in oggetto sono certo che il quesito sia di interesse
generale.
Secondo voi quali sono le soluzioni migliori per proteggere il file .php con
i logins al dbase? Voi come fate?
E se ho un pannello(costituito da 2 file php) tutto mio da dove inserisco
notizie e altro a parte il non lasciare queste pagine sul server che
soluzioni ci sarebbero per renderle inaccessibili?
Ho sentito parlare di htaccess ma è vincolato a Linux o sbaglio? E' l'unica
soluzione?
ciao e grazie.
Mago di Oz
2006-10-09 13:20:45 UTC
Permalink
Post by IcarusDream
Non capisco cosa intendi per "proteggere" i file.
intendo che ho due files che rappresentano un vero e proprio mini-pannello
di gestione, in uno c'e' un form da dove inserisco i contenuti del sito e
nell'altro file c'e' lo script che riceve i valori e li passa al dbase.
Nonostante il primo file l'ho settato in modo da chiedere una password prima
di inserire i contenuti, mi e vi chiedo: è prudente lasciare questi files su
server per comodità?
Essendo autonomi dal resto dei files del sito potrei caricare questi due
files ogni volta sul server, accedervi per inserire i contenuti e le news
del sito e dopo cancellare i suddetti files.

Ciao e grazie.
Leonardo Serni
2006-10-09 13:13:42 UTC
Permalink
Post by Mago di Oz
Come indicato in oggetto sono certo che il quesito sia di interesse
generale.
Secondo voi quali sono le soluzioni migliori per proteggere il file .php con
i logins al dbase? Voi come fate?
Creo un file con nome pseudo-casuale, con dentro le password in chiaro,
fuori dal document tree.

Le circostanze che consentirebbero ad un ipotetico Tizio di leggersi le
password e connettersi al DB, sono le stesse che gli consentirebbero di
connettersi al DB anche senza avere la password.

Per esempio, le password le tengo in chiaro. Potrei criptarle. Pero' il
PHP al database si deve connettere, e quindi deve leggersi quelle pass,
DECRIPTARLE e usarle. Se uno ha accesso al codice PHP, gli ci vuole due
secondi per decriptare le password.

In alternativa, se l'accesso lo fai solo tu puoi farti chiedere la pass
ogni volta; il PHP la terra' solo in memoria (e nel file di sessione!),
sicche' a meno di avere accesso al disco o alla rete, un attaccante non
puo' fare molto... e se ha quell'accesso, della password gli importa in
modo molto relativo.

Un modo un po' aggrovigliato se hai utenti autenticati _e_ almeno *DUE*
utenze per il database e' questo:
- ti crei un utente guest, con diritto di sola lettura, solo su
una tabella "user_login".
- Qui c'e' solo l'utente e la pass in MD5, e un campo extra che
contiene la password dell'utente "user" del database, cifrata
con cifratura simmetrica. La chiave e' la pw utente.

Un anonimo compare, fornisce user e password, e il sistema verifica che
MD5(user) e MD5(password) esistano nell'elenco. Se li trova, allora usa
la pw utente per decrittare la pw di "user", chiude la connessione come
"guest" e diventa "user" (che ha i diritti di lettura sulle tabelle del
resto del database, scrittura dove deve, e nient'altro).

Certo, se uno accede al disco e sovverte il codice PHP, il primo che si
logga fornisce i dati per sblindare tutto l'altarino... e, se mai cambi
la password di "user", sei morto, perche' non hai modo di aggiornare il
database degli utenti (non puoi fare SymCrypt($newpassword, $userpass),
dato che non hai $userpass ma solo il suo MD5).

Leonardo
--
Dawn is near, the time is short (Human aircraft! Hard to port!)
We eight reindeers of the night work as one in silent flight.
Let not one damn house pass by (Who taught that guy how to fly?)
Each year sees more girls and boys: how many of them can we bring toys?
Mago di Oz
2006-10-09 13:34:45 UTC
Permalink
Post by Leonardo Serni
CUT
Leonardo
esauriente come sempre.
Grazie. ;--)

Loading...