Configurare le sessioni in modo sicuro ed evitare stati non necessari
Le sessioni utilizzano cookie sicuri, rinnovano gli identificatori a ogni cambio di accesso e memorizzano sul server solo i dati di stato necessari e di breve durata.
Per gli sviluppatori PHP e gli operatori di siti web, "Cookie protetti" e "Identità rinnovata" sono fondamentali per mantenere le sessioni PHP sicure e leggere. "Session Fixation" funge da contro-test.
Pubblicato: 3 minuti di lettura · Autore: Sebastian Geier
Quali impostazioni e regole di stato rendono una sessione PHP resiliente?
I cookie di produzione sono sicuri, HttpOnly, hanno un valore SameSite appropriato e un percorso ristretto. `use_strict_mode` rifiuta gli ID sconosciuti, l'identificativo viene rinnovato dopo le modifiche delle autorizzazioni e i processi lato server terminano gli stati inattivi; i dati aziendali persistenti e riservati devono essere archiviati in modo sicuro.
Identità rinnovata
Inventariare i requisiti di sessione e le chiavi memorizzate e scaricare i dati aziendali persistenti e sensibili.
Configurare centralmente i parametri dei cookie, la modalità rigorosa, la rigenerazione dell'ID e la logica di inattività lato server prima dell'avvio.
Testare l'accesso, le modifiche delle autorizzazioni, le schede parallele, la scadenza, il logout e gli ID rubati nei test di integrazione.
Fissaggio della sessione
Fissaggio della sessione – Un identificativo noto prima del login rimane valido anche dopo e diventa la chiave per accedere a uno stato con privilegi più elevati.
Durata illimitata – I cookie e i dati lato server vengono conservati senza un vero e proprio controllo di inattività, aumentando il rischio di abusi.
Archiviazione esclusiva per l'azienda – I dati del carrello, dell'approvazione o della richiesta scompaiono al termine della pulizia e non hanno né una cronologia né una proprietà coerente.
Caso decisionale: "Fissazione della sessione"
Un modulo interno mantiene lo stesso ID di sessione dopo l'accesso e memorizza l'intera richiesta solo in $_SESSION. L'applicazione rigenera l'ID al momento dell'accesso, limita i periodi di inattività e memorizza versioni della richiesta, mentre la sessione ne conserva solo un riferimento temporaneo.
stato minimo a breve termine
Segnale di controllo
Segnale 1
Percentuale di cookie di sessione produttivi con Secure, HttpOnly, SameSite appropriato e specifica di dominio e percorso strettamente limitati.
Segnale di controllo
Segnale 2
Numero di valori di sessione a lungo termine o critici per l'attività aziendale e ID precedenti riutilizzabili con successo dopo una modifica delle autorizzazioni.
Cookie protetto
Cookie protetto – Trasporto, accesso agli script, contesto del sito, dominio e percorso sono configurati in modo restrittivo in base all'effettivo utilizzo dell'applicazione.
Identità rinnovata – Il login e le relative modifiche alle autorizzazioni generano un nuovo ID di sessione senza perpetuare in modo incontrollato il vecchio stato.
stato minimo a breve termine – La sessione contiene solo i valori volatili necessari e fa riferimento a una posizione di archiviazione affidabile per i dati aziendali di lunga durata.
Ciò che segue da “Mantenere le sessioni PHP sicure e leggere”
Protezione del caricamento dei file in base a tipo, dimensione e posizione risponde alla successiva domanda pratica: quali controlli devono avere esito positivo prima che un caricamento PHP venga salvato in modo permanente?
Distribuzione di risorse statiche con tempi di esecuzione lunghi e parametri di versione prosegue su questa linea di pensiero con un'altra domanda: come si combinano tempi di esecuzione lunghi della cache con modifiche immediatamente visibili alle risorse statiche?
Se si desidera mettere in pratica il tema "Mantenere le sessioni PHP sicure e snelle", è possibile fare riferimento a Sistemi web robusti che si concentra su "Stato dell'applicazione e autenticazione" e "Cookie protetti".
Conclusione: Mantenere le sessioni PHP sicure e snelle
Le sessioni sicure richiedono più di un semplice flag cookie. L'impersonificazione, la scadenza e uno stato snello limitano sia la superficie di attacco sia i danni causati dalla perdita di una sessione.
Fonti e ulteriori informazioni
Le fonti primarie definiscono il framework tecnico per "mantenere le sessioni PHP sicure e snelle".
Foglio riassuntivo sulla prevenzione della falsificazione delle richieste tra siti (CRS) – OWASPLa fonte primaria OWASP descrive le strategie di token, origine, same-site e metadati fetch per le richieste che modificano lo stato.
Nozioni di base sulla gestione delle sessioni – Manuale PHPLa documentazione ufficiale di PHP spiega la rigenerazione dell'ID di sessione, i cookie, la scadenza e la protezione contro il fixation e il dirottamento.
password_hash – Manuale PHPIl manuale PHP definisce gli algoritmi di password adattivi supportati, i salt generati automaticamente e la compatibilità con il rehash.
Tesi chiave
I cookie sono sicuri, utilizzano solo HTTP e sono compatibili con SameSite; la modalità rigorosa e la durata controllata limitano gli abusi. L'ID viene rinnovato dopo l'accesso e i dati aziendali sensibili o persistenti non vengono memorizzati esclusivamente all'interno della sessione.
Cosa non riguarda
Una sessione non è né una memoria persistente né automaticamente sicura solo perché PHP genera un identificatore casuale e un cookie.
Di cosa si tratta
Attributi dei cookie, modalità di sessione rigorosa, durata controllata e limite minimo di furto di stato, fissazione e dipendenza operativa.
Ulteriori approfondimenti
PHP, moduli e sicurezza
Implementare correttamente la protezione CSRF per i moduli semplici
"Mantenere le sessioni PHP sicure e leggere" include, come fase di test separata, la domanda: come viene generato e convalidato in modo sicuro un token CSRF in un semplice modulo PHP?
PHP, moduli e sicurezza
Normalizzare l'input senza corrompere i caratteri validi.
A complemento di "Mantenere le sessioni PHP sicure e leggere", si aggiunge una decisione separata: come fa PHP a normalizzare l'input di testo senza danneggiare nomi, accenti o punteggiatura?
Panoramica degli Insight
Tutti gli Insight di VELUNO in sintesi
Ulteriori analisi sui sistemi web, la visibilità digitale e modelli di lavoro robusti.
Cookie protetto: primo ordine di lavoro
La configurazione attuale dovrebbe includere la modalità rigorosa, la rigenerazione e la scadenza lato server, oltre ai flag dei cookie. Un elenco chiave mostrerà quindi quali dati aziendali sono erroneamente presenti solo nella sessione.