Mi sono imbattuto in Twitto , che in pratica è un framework web che si inserisce in un tweet. È così breve che posso postare il codice qui:
require __DIR__.'/c.php';
if (!is_callable($c = @$_GET['c'] ?: function() { echo 'Woah!'; }))
throw new Exception('Error');
$c();
Cerca fondamentalmente un file chiamato c.php e chiama qualsiasi funzione in quei file che ha lo stesso nome di $_GET['c']
.
Sul sito web del progetto, c'è un grande banner rosso nella parte inferiore della pagina che legge:
» TWITTO IS NOT SECURE, DON'T USE IT FOR YOUR NEXT WEBSITE «
Non sono un guru PHP, ma per me sembra che se prendi tutte le precauzioni che usi normalmente con un sito PHP standard (sanitizzazione dell'input dell'utente, ecc.), dovrebbe essere abbastanza sicuro?
Cosa c'è di sbagliato in questo piccolo framework?
EDIT: Capisco perché questo framework non sia sicuro AS-IS, ma con i controlli di bootstrap e validazione appropriati e tutto all'interno della funzione che chiamate, dovrebbe essere altrettanto sicuro di qualsiasi altro framework?