11.09.2018 Views

Aprender a desarrollar un sitio Web con PHP y MySQL

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Si muestra el código de origen de la página, aparecerá lo siguiente:<br />

&lt;script&gt;alert(Hola)&lt;/script&gt;<br />

Y el navegador muestra el script sin ejecutarlo.<br />

2. XSS permanente<br />

Supongamos que el script malicioso se ha insertado en la base de datos <strong>con</strong> <strong>un</strong> mensaje en el foro, el<br />

blog o en <strong>un</strong> e-mail. Este mensaje se ejecuta cada vez que <strong>un</strong>a persona lee el mensaje en Internet.<br />

La solución es la misma: si recupera el mensaje <strong>con</strong> $_POST[’mensaje’], añada la<br />

f<strong>un</strong>ciónhtmlentities().<br />

Por ejemplo, si <strong>un</strong>a página recupera el nombre, el apellido y el mensaje <strong>con</strong> POST, dará el siguiente<br />

resultado:<br />

<br />

Los caracteres especiales se insertan en la base de datos y el script no se ejecuta cuando se muestra<br />

el mensaje que lo <strong>con</strong>tiene.<br />

3. Error de página<br />

Si recurre a su página <strong>PHP</strong> utilizando como parámetro el nombre de <strong>un</strong>a página <strong>con</strong>tenida en <strong>un</strong><br />

include, aparecerá lo siguiente: http://127.0.0.1:8888/get_recibe.php?pagina=pagina1<br />

El código pagina get_recibe.php es:<br />

<br />

include("files/".htmlentities($_GET[’pagina’]).".php");<br />

Tiene como efecto incluir pagina1.php<br />

Si el usuario agrega en la URL <strong>un</strong> script malicioso, como: http://127.0.0.1:8888/get_recibe.php?pagina=<br />

alert(’Hola’)<br />

Aparecerá en su página <strong>un</strong> mensaje de error, <strong>con</strong> <strong>un</strong> e-mail que <strong>con</strong>tiene la URL que provoca dicho<br />

error, siempre y cuando se haya activado el informe de error.<br />

Cuando lea su e-mail, se ejecutará el script, ya que tendrá su código JavaScript en el e-mail.<br />

Para evitar esto, añada el código error_reporting(0) en la página de inicio. El resultado será no<br />

mostrar el error y no enviará el e-mail de la URL que <strong>con</strong>tiene el script malicioso.<br />

www.FreeLibros.me

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

Saved successfully!

Ooh no, something went wrong!