Il mio suggerimento è di creare una funzione per disinfettare tutti i tuoi input di testo e una funzione per controllare tutti i tuoi output che provengono dal database o da qualsiasi altra fonte, come segue:
<?php
// filter for user input
function filterInput($content)
{
$content = trim($content);
$content = stripslashes($content);
return $content;
}
//filter for viewing data
function filterOutput($content)
{
$content = htmlentities($content, ENT_NOQUOTES);
$content = nl2br($content, false);
return $content;
}
a seconda della tua strategia, potresti aggiungere funzionalità extra al filtro o rimuoverne alcune. Ma la funzione che hai qui è sufficiente per proteggerti da XSS.
MODIFICA: oltre alla funzione precedente, questa risposta potrebbe anche essere rilevante in parte della protezione del tuo sito web.
Riferimento ai diversi metodi:
- trim:http://php.net/manual/en/function. trim.php
- stripslashes:http://php.net/manual/en/function. stripslashes.php
- htmlentities:http://php.net/manual/en/function. htmlentities.php
- nl2br:http://php.net/manual/en/function. nl2br.php
È anche una buona idea guardare i seguenti link:
- Qual è il metodo migliore per disinfettare l'input dell'utente con PHP?
- La funzione di pulizia/protezione definitiva
E, soprattutto, è bene essere consapevoli dei 10 principali rischi e saperne di più.