Ho un articolo completo su input filtraggio in laravel, si potrebbe trovare utile http://usman.it/xss-filter-laravel/, qui è l'estratto da questo articolo:
Puoi fare un XSS globale da solo, se non hai una libreria per scrivere metodi comuni potresti aver bisogno di frequente allora ti chiedo di creare una nuova libreria Comune in applicazione/libreria. Mettere questi due metodi nella libreria comune:
/*
* Method to strip tags globally.
*/
public static function global_xss_clean()
{
// Recursive cleaning for array [] inputs, not just strings.
$sanitized = static::array_strip_tags(Input::get());
Input::merge($sanitized);
}
public static function array_strip_tags($array)
{
$result = array();
foreach ($array as $key => $value) {
// Don't allow tags on key either, maybe useful for dynamic forms.
$key = strip_tags($key);
// If the value is an array, we will just recurse back into the
// function to keep stripping the tags out of the array,
// otherwise we will set the stripped value.
if (is_array($value)) {
$result[$key] = static::array_strip_tags($value);
} else {
// I am using strip_tags(), you may use htmlentities(),
// also I am doing trim() here, you may remove it, if you wish.
$result[$key] = trim(strip_tags($value));
}
}
return $result;
}
Poi inserire questo codice all'inizio del vostro filtro prima (in applicazione/routes.php):
//Our own method to defend XSS attacks globally.
Common::global_xss_clean();
risposta rimosso in quanto non ha ancora si applica a XSS. Non c'è un modo duro o veloce, penso ... filtro il contenuto, legare i cookie agli indirizzi IP. La voce wiki ha un carico di buone informazioni http: //en.wikipedia.org/wiki/Cross-site_scripting –
@DavidBarker, mi hai sbagliato. Tutto ciò di cui ho bisogno è di impedire che tag e javascript vengano eseguiti quando si mostra l'input dell'utente. – warmspringwinds