Tengo un problema donde las personas pueden explotar mi BBCode personalizado. No estoy seguro de cómo arreglar esto, y esperaba que alguien aquí me ayudara. En el código a continuación, hay mucho más BBCode en los arreglos, pero solo he proporcionado el más vulnerable.
function BBCode($input) {
$input = htmlentities($input, ENT_QUOTES);
$search = array('/\[font color=(.+?)\](.*?)\[\/font\]/is');
$replace = array('<font style="color: $1">$2</font>');
$bbcoded = preg_replace($search, $replace, $input);
return $bbcoded;
}
Si tuviera que publicar algo como "[font color = # 5fd233; font-size: 50px] test 2 [/ font]", también incluiría el atributo de tamaño de fuente. He intentado una solución de terceros llamada "HTMLPurifier", pero no funcionó.
Gracias de antemano!