Solo FYI non prenderei in considerazione l'utilizzo di stripcslashes in quanto potrebbe anche causare XSS.
Lasciami spiegare:
stripeslashes vs stripcslashes
stripslash rimuove tutti i backslash indipendentemente dal tipo
stripcslashes rimuoverà tutte le barre inverse tranne i caratteri esadecimali, quindi ciò significa che è possibile eseguire un attacco XSS su una funzione che usa stripcslashes facendo qualcosa del genere:
\x3c\x73\x63\x72\x69\x70\x74\x3e\x61\x6c\x65\x72\x74\x28\x27\x58\x53\x53\x21\x27\x29\x3b\x3c\x2f\x73\x63\x72\x69\x70\x74\x3e
Che quando valutato dalla funzione stripcslashes risulterà in: alert ('XSS!');
Questa era in realtà una vulnerabilità che ho trovato all'interno di un famoso plugin Wordpress (Platinum SEO < = 1.3.7)
Assicurati di fare le tue ricerche sulle funzioni che stai utilizzando prima di utilizzarle poiché potresti causare più problemi di quanti ne valga.
Questo vale anche per il tuo utilizzo di addcslashes () perché potresti costringerlo a valutare il codice dove non vuoi, in questo modo:
$>php -r 'echo addcslashes("\x41", "A..z");'
\A
Ed ecco un esempio di base in uso per una stringa XSS non valida:
> php -r 'echo addcslashes("\x3c\x73\x63\x72\x69\x70\x74\x3e\x61\x6c\x65\x72\x74\x28\x27\x58\x53\x53\x21\x27\x29\x3b\x3c\x2f\x73\x63\x72\x69\x70\x74\x3e", "/");'
<script>alert('XSS!');<\/script>
Come puoi vedere, eseguiresti comunque l'avviso.
Come confermato da mehaase, non c'è modo di invocare codice PHP senza usare qualcosa come include (), require (), eval (), system () (Hai più problemi se stai usando system () su input dell'utente rispetto all'esecuzione di codice arbitrario PHP.