Tengo la siguiente situación, tengo una función para evitar a taques xss por $_POST en php pero haciendo un escaneo de prueba me arroja que soy vulnerable a continuación le dejo el código para ver si me pueden ayudar.
function input_post($campo){
if(isset($_POST[$campo])){
return htmlspecialchars($_POST[$campo], ENT_QUOTES, 'UTF-8');
}else{
return NULL;
}
}
Probá con htmlentities. Te quedaría así:
return '.htmlentities($_POST[$campo]', ENT_QUOTES, 'UTF-8');
Saludos!
ANTRAX
Hola,
Con el contexto que nos has dado es difícil saber por qué ese código es vulnerable a XSS, la función que estás utilizando encodea los siguientes caracteres <, >, &, ", pero dependiendo de la versión no encodea ', por lo que dependiendo del caso podría ser vulnerable.
Por otro lado, según donde lo estes poniendo ni hará falta una comilla para poder ejecutar código.
echo "<img src=".htmlspecialchars($_GET['campo'], ENT_QUOTES, 'UTF-8').">";
Fijate que aquí uses la función que uses va a ser vulnerable a XSS.
(https://i.imgur.com/3xim8o8.png)
Como te comento dependerá mucho de tu caso, si nos puedes dar más información mejor que mejor, si no, la herramienta que dice que es vulnerable debería decirte que Payload ha usado y ahí podrás ver como solucionarlo.
Un saludo.
Hola si encontraste alguna solución?