Sicurezza login $_SESSION attacchi XSS CSRF

voldemort

Utente Attivo
26 Mar 2009
170
5
0
Eccomi finalmente ad un punto criciale del mio programma, LA SICUREZZA...
Come molte guide dicono "non fidarsi mai degli input" sto leggendo molte cose al riguardo di attacchi XSS e CSRF e volevo riscrivere la struttura del mio login per evitare noie visto che le visite stanno aumentando vorrei proteggermi prima che accada qualcosa, e poi appena possibile, passo tutto su un cloud e integrerò la crittografia SSL per stare leggermente più tranquillo :-D

Veniamo a noi, attualemente la struttura della mio login è la seguente :

la mia ACTION chiama una funzione pubblica e poi dalla pubblica chiamo una funzione privata in modo da evitare l'accesso diretto alla funzione che che crea la mia sessione, ovviamente per togliere eventuali script dagli input la mia username e password viene pulita grazie a strip_tags "Eliminando cosi la possibilità di eseguire un'attacco XSS"
Codice:
	public function login()
    {
            if(isset($_POST['submit'])){
              $username = strip_tags($_POST['username']);
              $password = strip_tags($_POST['password']);
                $this->valida_accesso($username, $password);               
            }else{                
                header('location:'. base_url());//errore login o hack
            }
    }

private function valida_accesso($username=null,$password=null){ 
            
            if(($username !="") && ($password != "")){
                $password_criptata = md5($password);                
                $this->load->model('account_model');                
                $riga_account=$this->account_model->verifica_login($username, $password_criptata); 
                
                
                if(count($riga_account)>0){
                    //prelevare livello
                    $this->load->model('dati_account_model');
                    $dati_account=$this->dati_account_model->cerca_da_id_account($riga_account->id);
                   
                    
                    //caso verificato  
                    if($username==$riga_account->username){
                        if((($dati_account->livello >= "1") || ($dati_account->livello <= "4"))&&($riga_account->abilitato == "0")){
                        session_start();

                        $_SESSION['username'] = $riga_account->username;
                        $_SESSION['password'] = $riga_account->password;
                        $_SESSION['id'] = $riga_account->id;
                        $_SESSION['livello'] = $dati_account->livello;
                        $_SESSION['nome'] = $dati_account->nome;
                        $_SESSION['cognome'] = $dati_account->cognome;
                        
                        
                        if($dati_account->livello ==4){
                            $_SESSION['super_admin']=true;
                        }
                        switch($_SESSION['livello']){
                            case "4":
                                header('location:'.base_url().'super_admin/index');
                            break;
                            case "3":                                
                                header('location:'.base_url().'admin');
                            break;    
                        }

                        }else{//permesso negato
                           $type= "alert alert-danger";
                        $messaggio = "<center><b>Permesso Negato</b></center><br /> Verrai rendirizzato alla HOME fra breve";
                        $url = "";
                        $this->user_model->messaggio_admin($type,$messaggio,$url);  
                        }
                    }else{
                        $type= "alert alert-danger";
                        $messaggio = "<center><b>Errore Dati inseriti</b></center><br /> Verrai rendirizzato alla HOME fra breve";
                        $url = "";
                        $this->user_model->messaggio_admin($type,$messaggio,$url);
                    }
Ora per proteggermi da un'attacco CSRF ho capito come generare un codice tocken :
Codice:
$old_sessionid = session_id();

session_regenerate_id();

$new_sessionid = session_id();

echo "Old Session: $old_sessionid<br />";
echo "New Session: $new_sessionid<br />";
ma come posso usarlo ???
 
Discussioni simili
Autore Titolo Forum Risposte Data
F [php] sicurezza password form login PHP 2
L Sicurezza login e limitazione accessi PHP 3
A sicurezza wp login failed WordPress 5
F sicurezza script login PHP 3
S Sicurezza sulla registrazione e sulla login PHP 3
Leoluca SICUREZZA, GRUPPO DI LAVORO E PROFILI MS Access 2
R Mettere in sicurezza una comunicazione .NET Framework 0
NioMio Aruba Sicurezza certificati e ranking di sicurezza 2019/2020 Hosting 1
E [CERCO] Pubblicità per Ebook tema Sicurezza Informatica Vendere e Acquistare pubblicita' online 1
G [PHP] Quali sono tutte le misure di sicurezza che un sito deve avere? PHP 1
W [PHP] Un dettaglio di logica e approccio sulla sicurezza di un progetto. PHP 9
K xamp impostazioni di sicurezza Web Server 5
W [C#] Sicurezza Client/Server - SOAP o RESTFull API .NET Framework 0
W Windows vs Linux per la sicurezza su ATM Windows e Software 0
A Retribuito: Sviluppatore Asp classico esperto in sicurezza webserver IIS e SQL Offerte e Richieste di Lavoro e/o Collaborazione 0
matteoraggi Sicurezza di un server apache con uso limitato Apache 0
K [php] due domande sulla sicurezza PHP 1
S [PHP] $_SESSION e sicurezza... PHP 2
giorgiolovecchio [WordPress] Risorsa http invalida sicurezza sito WordPress 2
KILLERIX Sicurezza dei database nei siti web Database 2
V [PHP] upload di file in cartella e sua sicurezza PHP 137
romeocharly nuove norme di sicurezza paypal Guadagnare col Sito 3
M Formazione per diventare uno specialista di Sicurezza Informatica Sicurezza e Virus 3
A Sicurezza sito PHP 0
P Errore Codice Sicurezza Guestbook Supporto Mr.Webmaster 0
L Paypal - aggiornamenti alla sicurezza PHP 5
A Non riesco più a visualizzare il codice sicurezza nel forum Supporto Mr.Webmaster 3
R Security Ninja Core Scanner Plugin Sicurezza WordPress 5
I Problemi di sicurezza php PHP 1
C Sicurezza Textarea PHP 1
Akuma consiglio sicurezza per soluzione problema apici PHP 0
filippino phpBB: spam nonostante captcha e domanda di sicurezza phpBB 0
A consiglio sulla sicurezza PHP 5
E [RISOLTO]Sicurezza attacchi con $_session: come viene gestita nella trasmissione server client ? PHP 5
A ricavare il path alle cartelle e sicurezza PHP 5
M Codice di sicurezza su modulo Classic ASP 25
G MyBB: Sicurezza della pagina e del suo contenuto CMS (Content Management System) 2
L problema gestione utenti e sicurezza persone PHP 3
M creare da soli in sicurezza un sito Offerte e Richieste di Lavoro e/o Collaborazione 4
asevenx problema con codice di sicurezza captcha PHP 2
M Sicurezza dati form per insert e select in database PHP 11
M Sicurezza delle sessioni PHP 25
F Richiesta pillola su sicurezza jQuery 5
B Sicurezza php/mysql form PHP 2
L Database esterno e sicurezza Database 2
J Come usare certificato SSL per la sicurezza PHP 2
G Vendere e comprare in sicurezza in internet Presenta il tuo Sito 0
L Sicurezza nella registrazione PHP 14
T Sicurezza sito Web PHP 11
B Aumentare livello di sicurezza accesso client area riservata Classic ASP 5

Discussioni simili