Domanda

Abbiamo un paio di sviluppatori che chiedono di abilitare allow_url_fopen sul nostro server. Qual è la norma in questi giorni e se libcurl è abilitato, c'è davvero una buona ragione per permetterlo?

L'ambiente è: Windows 2003, PHP 5.2.6, FastCGI

È stato utile?

Soluzione

Sicuramente allow_url_include impostato su Off, che mitiga molti dei rischi di allow_url_fopen .

Ma poiché non tutte le versioni di PHP hanno allow_url_include , la migliore pratica per molti è quella di disattivare fopen. Come con tutte le funzionalità, la realtà è che se non ne hai bisogno per la tua applicazione, disabilitala. Se ne hai bisogno, probabilmente il modulo curl può farlo meglio, e il refactoring della tua applicazione per usare curl per disabilitare allow_url_fopen può scoraggiare il cracker meno determinato.

Altri suggerimenti

Penso che la risposta si riduce a quanto ti fidi che i tuoi sviluppatori utilizzino la funzione in modo responsabile? I dati da un URL esterno devono essere trattati come qualsiasi altro input non attendibile e, a condizione che sia compreso, qual è il grosso problema?

Il modo in cui lo vedo è che se trattate i vostri sviluppatori come bambini e non lasciate mai che gestiscano cose acute, allora avrete sviluppatori che non imparano mai la responsabilità di scrivere codice sicuro.

Gli attacchi di cross-site scripting sono un dolore, quindi è un voto contrario. E dovresti assolutamente avere " allow_url_include " partirai, o ti verrà un mondo di dolore.

Dipende dal tipo di sviluppo. Se la tua prototipazione abilita 'allow_url_fopen' va bene, tuttavia non c'è una differenza di velocità significativa tra libcurl e file_get_contents e abilitarla è solo una questione di convenienza.

Per i server di produzione qualsiasi chiamata a libcurl deve essere contrassegnata per un controllo di sicurezza. Come dovrebbe fopen e file_get_contents se 'allow_url_fopen' è abilitato. La disabilitazione di "allow_url_fopen" non impedisce gli exploit, ma limita solo leggermente il numero di modi in cui possono essere eseguiti.

Il grosso problema è che allow_url_fopen non è più sicuro , quindi se vuoi salvare un file da un url usando curl, devi passare da fopen / file_get per salvare il file.

  
      
  • CURL è utile solo per recuperare contenuti remoti dall'URL.    (allow_url_fopen non necessario)
  •   
  • CURL deve essere aggiunto con Fopen o File_get se si desidera salvare in remoto   file sul tuo server.    (allow_url_fopen obbligatorio con CURL)
  •   

Php deve trovare altri modi per renderlo più sicuro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top