È sicuro accedere direttamente a superglobali con isset ()?

2

Capisco che si dovrebbe sempre cercare di evitare l'accesso diretto ai superglobali per inserire valori da superglobali in variabili, ad esempio:

$name = filter_input(INPUT_POST, 'name'); 
//instead of 
$name = $_POST['name']; // not safe

La mia domanda se è sicuro usare isset () per verificare se è presente un superglobale, ad esempio:

if (isset($_POST['name')) {

}

Personalmente non capisco perché non sarebbe una buona pratica, ma non sono così avanzato nella programmazione.

(Recentemente ho iniziato a utilizzare Netbeans e mi viene fornito un suggerimento che consiglia di modificare questo codice. Forse il messaggio non è del tutto corretto, ma preferirei sapere con certezza.Non ho trovato una buona risposta altrove.)

    
posta Lexib0y 13.06.2015 - 20:25
fonte

2 risposte

2

È sicuro usare la funzione isset in super globals. È molto efficace attivare eventi per un evento di invio specifico. Controlla solo se la variabile globale è esistente e non provocherà alcun danno come l'iniezione XSS / Code / SQL.

Penso che la raccomandazione che hai ricevuto di cambiare il codice sia che devi ...

$name = filter_input(INPUT_POST, 'name'); 

poi ...

if (isset($name)) {
}
    
risposta data 01.08.2015 - 10:04
fonte
0

Non sono ancora sicuro se esista o meno un pericolo nell'uso di isset () su variabili di input come $ _POST. Ma ho trovato che esiste una funzione in PHP creata proprio per questo scopo. È la funzione PHP filter_has_var () . Per ulteriori informazioni sui filtri per le variabili di input, posso anche consigliare di leggere ulteriori informazioni sulle funzioni di filtro PHP

    
risposta data 17.11.2015 - 14:23
fonte

Leggi altre domande sui tag