Prevenir ataques Cross-Site Scripting (XSS) en PHP

El Cross-Site Scripting (XSS) es un tipo de vulnerabilidad muy común en las aplicaciones web que consiste en que el atacante inyecta código (generalmente JavaScript o HTML) en nuestra página web.

Se debe generalmente a no validar correctamente los parámetros de entrada de una página web, ya sean parámetros en la URL o los datos de un formulario.

Por ejemplo, en uno de los campos de un formulario de nuestra página web, el atacante podría llegar introducir lo siguiente:

<script>alert("Tu sitio es vulnerable a los ataques XSS");</script>

Si no validamos correctamente los campos del formulario y en una pantalla posterior mostrásemos los datos introducidos, el atacante vería una alerta con el texto anterior y, por lo tanto, habría logrado inyectar código en nuestra web.

La inyección del código del ejemplo anterior probablemente no nos preocupe, pero hay que tener en cuenta que si se puede inyectar ese código, un atacante experimentado podría llegar a hacer cualquier cosa en nuestra página web. Por ello, será necesario prevenir este tipo de ataques en todos nuestros formularios.

Para ello, en PHP podemos utilizar como primera medida la función strip_tags a la hora de recuperar los datos de cada uno de los campos del formulario.

$miCampoDeFormulario = strip_tags($_POST["nombreDeMiCampoDeFormulario"]);

Esta función elimina de una cadena todas las etiquetas HTML, lo que impediría al atacante utilizar por ejemplo la etiqueta <script> (entre otras).

Nuestra puntuación
Twittear
Compartir
Compartir
Pin