Asselin Benoit Développement - Création et conception de sites internet - Amiens Somme Picardie Paris France

$_SERVER['PHP_SELF'] et injection de code HTML (création site internet)
02`03`2008

Aucun commentairePoster un commentaire !
Tags: PHP XHTML Securite

Cette faille de sécurité n'est pas nouvelle en soit, mais il est parfois bon de faire un petit rappel. De manière générale, ne faites jamais confiance aux variables $_SERVER, $_COOKIE, mais aussi, $_GET, $_POST, $_REQUEST, $_FILES...

Exemple de faille avec <?php echo $_SERVER['PHP_SELF']; ?> dans la page php suivante :

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">

<html lang="fr">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<title>$_SERVER['PHP_SELF']</title>
</head>
<body>
	<form action="<?php echo $_SERVER['PHP_SELF']; ?>" action="post">
		<fieldset>
			<legend>Ma FORM</legend>
			<p><input type="submit"></p>
		</fieldset>
	</form>
</body>
</html>

Si vous appelez la page ci-dessus avec le lien suivant :

http://www.monsite.com/page.php/"><script>alert('Injection!');</script>

vous verrez une belle fenêtre de dialogue Javascript "Injection!" ...

Pour remédier à cette faille de sécurité, pensez à toujours sécuriser vos variables avec une fonction du type htmlentities().