Al momento, le persone possono usare XSS nel mio URL BBCode e non so come risolverlo. Avevo tentato di risolverlo qualche tempo fa, ma qualcuno in qualche modo l'ha aggirato!
function filterScript($content) {
$pattern = array('/href="javascript:[^"]+"/', '/style=":[^"]+"/');
$default = array('#', 'color: #337ab7; text-decoration: none');
return preg_replace($pattern, $default, $content);
}
function bbcode($input) {
$search = array('/\[a url="(.+?)"\](.*?)\[\/a\]/is');
$replace = array('<a href="$1" style="color: #337ab7; text-decoration: none" target="_blank">$2</a>');
$bbcoded = preg_replace($search, $replace, $input);
return filterScript($bbcoded);
}
Sì, uso strip_tags, mysql_real_escape_string e striplashes.