Cita:
Iniciado por schattenburg Hola a todos.-
Tengo por ejemplo esta url:
www.midominio.com/resultado.php?mensaje=hola
Pero por ejemplo alguien malintencionado podría cambiar la url para meter javascript injection:
www.midominio.com/resultado.php?mensaje=<h1 onmouseover=alert(1)>alertaXSS</h1>
Para evitarlo he puesto en resultado.php:
$_GET["mensaje"] = strip_tags($_GET["mensaje"]);
Y así ya me funciona perfectamente y ya solo me escribe el mensaje al eliminar todo el HTML.
Pero por si acaso me gustaría para darle más seguridad poder eliminar todo el posible javascript que haya en $_GET["mensaje"], ¿existe alguna manera en PHP para eliminar todo el javascript que haya en una cadena que se pasa por parámetro?
Muchas gracias
estimado eso que descrives se llama ataque xss; que puedes apalear con un pequeño codigo y que hoy en dia todos los navegadores incluyen esa funcionalidad:
busca X-XSS Protection.
referencia:
https://geekflare.com/apache-web-ser...ning-security/
Colocando en el inicio de tu código esto:
Código PHP:
header('X-XSS-Protection: 1; mode=block');
si quieres ir un paso mas alla:
Código PHP:
header('Referrer-Policy', 'no-referrer-when-downgrade');
header('X-Content-Type-Options', 'nosniff');
header('X-XSS-Protection', '1; mode=block');
header('X-Frame-Options', 'DENY');
header('Strict-Transport-Security', 'max-age=31536000; includeSubDomains');
header('Content-Security-Policy', "style-src 'self'");
con eso estarías bastante protegido.
te recomiendo googlear las cabeceras de los header para que sepas para que son.
Saludos.