Data di scadenza PHP senza escape, rischi per la sicurezza?

1

Ti stai chiedendo se ci sono rischi per la sicurezza se usi il codice sottostante?

$val = $_GET['date'];
$date = new DateTime($val);

Grazie

    
posta MagExt 25.06.2017 - 04:20
fonte

1 risposta

2

Se la tua domanda è: "ci sono attualmente noti problemi di sicurezza con PHP che possono sfruttare questo?" ... considera lo scenario in cui l'input inaspettato potrebbe:

  • imposta DateTime come errore o causa un'eccezione che il tuo programma non sta gestendo ulteriormente; potrebbe causare output errato o peggio, un HTTP 5xx.
  • qualcuno che mantiene questo codice dopo aver usato l'input in modi che non hai fatto (sì, questo può portare a discussioni su programmatori poveri / disattenzione, ma hey succede più spesso di quanto pensi).

Ci sono rischi per la sicurezza ogni volta che si utilizza direttamente input esterni non attendibili nel codice. I cattivi bug hanno un modo di presentarsi nei momenti più scomodi

  • I buffer overflow, specialmente in software ampiamente usati come PHP, non dovrebbero essere comuni, ma sono accadute cose più rare.
  • Gli escape di contesto potrebbero essere possibili

Questi non devono accadere con la versione corrente di PHP che stai usando / testando con. Dove verrà distribuito il tuo codice? Verranno utilizzate versioni precedenti o diversi motori / librerie PHP? Una versione / motore più recente avrà un bug non ancora scoperto?

Quindi alla fine la domanda si riassumerà in: Qual è la ragione convincente per cui è necessario correre questo rischio, specialmente quando l'alternativa più sicura non è costosa (sforzo o risorse)?

    
risposta data 25.06.2017 - 04:52
fonte

Leggi altre domande sui tag