Ciò che il tuo esempio in pratica fa è riprendere ciò che gli dai. Ciò significa che un utente malintenzionato potrebbe creare un collegamento con un determinato contenuto nell'URL e chiunque farà clic sul link verrà visualizzato il contenuto scelto dall'attaccante.
Quindi, come può essere usato, oltre a moderarti in modo imbarazzante? Dipende dal tipo di contenuto. Poiché non viene specificato nient'altro, suppongo che sia text/html
. Se un utente malintenzionato può pubblicare HTML, può anche pubblicare script che verranno eseguiti nel browser come se fossero di origine. Ciò a sua volta significa che lo script potrebbe ad es. rubare i cookie di autenticazione, le password del registro delle chiavi o eseguire azioni per conto della vittima. Quello che hai qui è un primo esempio di riflesso XSS , e questo è molto , molto male.
Ma l'hacker potrebbe eseguire il codice sul back-end, cioè il server? No, non direttamente. La risposta è inviata al cliente, dopo tutto. Ma questo potrebbe essere usato come un trampolino di lancio per l'escalation di privelige che potrebbe facilmente portare a rimuovere l'esecuzione del codice se c'è qualche tipo di debolezza in qualsiasi webapp che stai usando, ad es. consente agli amministratori di modificare il codice PHP.
Quindi come si disinfetta? Questa è una domanda a cui rispondere in generale, ma lasciatemi dire almeno questo: htmlentities()
ti proteggerà in alcuni casi ma non tutti . Per capire quando è utile e perché, leggi its documentaiton e foglio cheat di prevenzione XAS di HOWASP .
Come indicato nella risposta di Tom , fare altre cose con i dati non pubblicitari porterà ad altri problemi, ad es. SQL injection se lo si utilizza nelle query SQL.