2014-05-07 3 views
6

Qualcuno può spiegarmi in cosa è responsabile use_strict_mode in php.ini config? Nella documentazione mi dice quanto segue:use_strict_mode in sessioni php

session.use_strict_mode specifica se il modulo userà rigorosa modalità id sessione. Se questa modalità è abilitata, il modulo non accetta l'ID di sessione non inizializzato. Se l'ID sessione non inizializzato viene inviato dal browser , il nuovo ID sessione viene inviato al browser. Le applicazioni sono protette dalla risoluzione della sessione tramite l'adozione della sessione in modalità rigorosa. Predefiniti a 0 (disabilitato).

mia comprensione rudimentale è che si crea sempre un ID di sessione per te, ma ho già visto un altro config option con fa lo stesso. Quindi presumo che la mia comprensione sia sbagliata. Allora perché ne abbiamo bisogno? (Il più vicino che ho visto è che impedisce OWASP A9, ma non mi dà molte informazioni).

+0

OWASP A9? Mi chiedo come si raccolgono quei "noti" – hakre

+0

@hakre non ho ricevuto il tuo commento. Puoi per favore riformularlo? –

+0

OWASP A9 non è nulla da prevenire, è una descrizione di cose fatte male. Non vi è inoltre alcuna relazione con la sessione, per quanto posso dire. Quindi mi chiedo, come riesci a connettere A9 a session.use_strict_mode (e anche un po 'come lo colleghi a session.auto_start). – hakre

risposta

8

No, non è l'avvio automatico della sessione.

che è solo, che se qualcuno crea un ID di sessione e inviarlo al server, e PHP si rende conto che non c'è nessuna sessione finora con tale ID (quando modalità rigorosa è acceso), PHP creerà un nuovo, diverso ID sessione: inizializza la sessione con quella nuova anziché (come quando la modalità rigorosa è disattivata) il valore immesso dall'utente per l'ID sessione.

un'introduzione più elaboreated e la motivazione su Strict Handling ID di sessione in PHP è stato delineato in un RFC nel wiki PHP: Request for Comments: Strict Sessions.

Quindi, con modalità rigorosa fuori, un utente può decidere quali ID di sessione che vuole utilizzare.

Con la modalità rigorosa attivata, l'utente non può decidere che.

Quindi è necessario quando non si desidera consentire a un utente di pre-definire il valore dell'ID di sessione. Normalmente vuoi impedire che per ridurre la superficie di attacco.

+2

solo per essere sicuro di aver capito bene. Sono in 'strict_mode off' e non è stata creata alcuna sessione. Invio una richiesta al server e manomettere il mio cookie pubblicando 'PHPSESSID = 'hi'', quindi il server avvia una sessione per me con' PHPSESSID'' hi '. Ma se faccio lo stesso con 'strict_mode' non succederà. Ho ragione? –

+1

Sì, questo è fondamentalmente quello che la parte che hai citato dice già in inglese molto semplice ... – CBroe

+0

grazie per il chiarimento di Cbroe e per una spiegazione di Hakre. –