Ver Mensaje Individual
  #3 (permalink)  
Antiguo 11/05/2019, 01:04
Avatar de enlinea777
enlinea777
 
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 16 años, 7 meses
Puntos: 127
Respuesta: Evitar javascript injection en PHP

Cita:
Iniciado por schattenburg Ver Mensaje
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.