View Full Version : [PHP] Sito con parte sicura...
SimoneLucca
09-02-2004, 13:05
Quali strumenti posso usare per realizzare un sito in php con una sezione sicura? Mi appoggio a DB mySQL e non vorrei usare i cookie.
Grazie
Se non vuoi usare i cookie puoi sempre propagare il session ID tramite GET...php dovrebbe farlo in automatico (se non sbaglio) quando i cookie sono disabilitati...
Ciao ;)
SimoneLucca
10-02-2004, 06:39
e con queste cose sono "sicuro"??? Quali altre attenzioni devo fare per essere il meno insicuro possibile? (uso MySQL+PHP)
I dati di sessione risiedono dalla parte del server e non transitano mai sulla rete... Potresti anche controllare l'IP ad ogni operazione, per evitare tentativi di "impersonificazione" (basterebbe sniffare il sessionID, anche se non so se questo controllo lo fa già PHP)... E' un'operazione veloce...basta salvarsi l'IP nella sessione...
SimoneLucca
10-02-2004, 16:00
ok cionci... hai fatto 99.... dimmi al volo la funzione per sapere l'IP e metterlo in una var!
grrrrrazie
$_SESSION['IP'] = (getenv(HTTP_X_FORWARDED_FOR)) ?
getenv(HTTP_X_FORWARDED_FOR) :
getenv(REMOTE_ADDR);
o così:
$_SESSION['IP'] = ($_SERVER['HTTP_X_FORWARDED_FOR']) ?
$_SERVER['HTTP_X_FORWARDED_FOR'] :
$_SERVER['REMOTE_ADDR'];
Ciao Simo ;)
SimoneLucca
12-02-2004, 09:58
che differenza c'e' tra le due soluzioni?
a livello di compatibilità?
quindi nella pagina di autenticazione metto:
$_SESSION['IP'] = (getenv(HTTP_X_FORWARDED_FOR)) ?
getenv(HTTP_X_FORWARDED_FOR) :
getenv(REMOTE_ADDR);
e dopo, nelle pagine protette controllo in questo modo?
if ($_SESSION['IP'] == (getenv(HTTP_X_FORWARDED_FOR)) ?
getenv(HTTP_X_FORWARDED_FOR) :
getenv(REMOTE_ADDR);) echo "ok";
else blablabla...
SimoneLucca
12-02-2004, 10:25
ma non c'e' verso di sapere l'effettivo indirizzo IP...
nel caso in cui il client sia in LAN dietro un router?
Provandolo in locale da il solito 127.0.0.1... non posso far venire il vero IP???
Prova a collegarti al server invece che con 127.0.0.1 con 192.168.0.x e vedrai il vero IP ;)
Comunque quando ti connettti da fuori vedi l'IP della connessione ADSL o dialup...
Il controllo che hai fatto è giusto...
getenv è meno portabile di $_SERVER... infatti non funziona se PHP gira, se non sbaglio, come ISAPI in IIS...
SimoneLucca
13-02-2004, 14:45
te Cionci hai detto questo...
Se non vuoi usare i cookie puoi sempre propagare il session ID tramite GET...php dovrebbe farlo in automatico (se non sbaglio) quando i cookie sono disabilitati...
Come mai tramite GET e non tramite POST?
Quindi il funzionamento del sito come dovrebbe essere?
esempio:
1) pagina di login controlla dal database user e pass;
2) se va bene cosa e come registra?
3) le altre pagine protette cosa devono controllare?
Grrrrraaaazzzziieeee!
P.S: In bocca al lupo per il 17.02!
La propagazione del session ID tramite GET dovrebbe farla automaticamente...
Setta session.use_cookies = 0 e vedrai che si propaga da solo ;)
L'utiizzo da parte tua dovrebbe essere trasparente (almeno credo, fai qualche prova)...
Qui c'è scritto tutto: http://it.php.net/manual/it/ref.session.php
Originariamente inviato da SimoneLucca
Grrrrraaaazzzziieeee!
P.S: In bocca al lupo per il 17.02!
Crepi ;)
Ah..attento al javascript... Il session ID non si propaga ad esempio in una cosa del genere:
window.location = pippo.php;
Dovresti fare una cosa del genere a mano:
window.location = pippo.php<?php "?".SID ?>
SimoneLucca
14-02-2004, 07:48
Cionci sei un fico... ops un mito!
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.