En este momento, las personas pueden usar XSS en mi URL BBCode, y no sé cómo solucionarlo. Intenté arreglarlo hace un tiempo, ¡pero alguien lo evitó!
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, y striplashes.