11.09.2018 Views

Aprender a desarrollar un sitio Web con PHP y MySQL

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Fallos de seguridad XSS<br />

Los fallos de seguridad XSS o Cross Site Scripting <strong>con</strong>sisten en la ejecución del código HTML, JavaScript o<br />

VBScript sin <strong>con</strong>ocimiento del webmaster.<br />

Hay dos tipos de XSS.<br />

1. XSS no permanente<br />

Este tipo de fallos de seguridad se puede en<strong>con</strong>trar cuando recurre a <strong>un</strong>a página <strong>PHP</strong> <strong>con</strong> información<br />

que se pasa en la URL.<br />

Por ejemplo, cuando recurre a la página get_recibe.php <strong>con</strong> el parámetro nombre=Juan:<br />

http://127.0.0.1:8888/get_recibe.php?nombre=Juan<br />

En la página get_recibe.php, aparece el siguiente código:<br />

<br />

Da como resultado:<br />

Juan<br />

A<br />

<strong>con</strong>tinuación el usuario cambia Juan por:<br />

alert(’Hola’)<br />

La página get_recibe abre <strong>un</strong> pop-up que muestra "Hola". El navegador ejecuta JavaScript que se ha<br />

generado <strong>con</strong> la instrucción echo $_GET[’nombre’];<br />

En este caso, el código intruso es <strong>un</strong>a alerta, pero el usuario puede introducir <strong>un</strong> código para leer las<br />

cookies, redirigir a otra URL, etc.<br />

Para impedir esto, los navegadores suelen activar la seguridad XSS por defecto, que procede de <strong>un</strong><br />

script que se encuentra en la URL y que por tanto no se ejecuta.<br />

Sin embargo, no puede saber <strong>con</strong> antelación la <strong>con</strong>figuración del navegador del usuario, por lo que se<br />

recomienda añadir código <strong>PHP</strong> para impedir estos scripts.<br />

Utilice la f<strong>un</strong>ción htmlentities() cuando recupere la información <strong>con</strong> $_GET o $_POST. Esta f<strong>un</strong>ción<br />

traduce los caracteres especiales y hace inoperativos los scripts maliciosos. Por defecto <strong>con</strong>vierte las<br />

dobles comillas e ignora las simples. Para utilizar las comillas simples, añada la <strong>con</strong>stante ENT_QUOTES.<br />

El ejemplo anterior se <strong>con</strong>vierte en:<br />

<br />

Y da como resultado:<br />

alert(’Hola’)<br />

www.FreeLibros.me

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!