Ho un problema in cui le persone sono in grado di sfruttare il mio BBCode personalizzato. Non sono sicuro di come sistemarlo e speravo che qualcuno qui mi potesse aiutare. Nel codice qui sotto, c'è molto più BBCode negli array, ma ho fornito solo il vulnerabile.
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;
}
Se dovessi pubblicare qualcosa come "[font color = # 5fd233; font-size: 50px] test 2 [/ font]", allora includerebbe anche l'attributo font-size. Ho provato una terza parte chiamata "HTMLPurifier", ma non ha funzionato.
Grazie in anticipo!