1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
<?php
$validite = time() + 60 * 60 * 24 * 31 * 2; // deux mois en secondes
// on considère que register_globals est désactivée, ainsi ce script fonctionnera quel que soit la configuration
if (isset($_GET['style'])) {
/* le style a été passé en méthode GET, dans l'URL */
$style = $_GET['style'];
}
else if (isset($_POST['style'])) {
/* le style a été passé en méthode POST, dans les entêtes HTTP */
$style = $_POST['style'];
}
if (isset($_GET['redirection'])) {
/* l'adresse de la page en cours est passée en méthode GET, dans l'URL */
$redirection = $_GET['redirection'];
}
else if (isset($_POST['redirection'])) {
/* l'adresse de la page en cours a été passée en méthode POST, dans les entêtes HTTP */
$redirection = $_POST['redirection'];
}
// protection contre les petits malins qui tenteraient de pirater le site
// le nom du style ne peut contenir que des caractères alpha-numériques et les caractères _ et -
$style = preg_replace('#[^a-zA-Z0-9_-]#', '', $style);
// on vérifie qu'il s'agit bien d'un lien interne
// il doit commencer par http://monsite.com/
if (strpos($redirection, 'http://'.$_SERVER['SERVER_NAME'].'/') === false || strpos($redirection, 'http://'.$_SERVER['SERVER_NAME'].'/') != 0) {
/* tentative de piratage ? on remplace par la racine du site */
$redirection = 'http://'.$_SERVER['SERVER_NAME'].'/';
}
setcookie('feuilleStyle', $style, $validite, '/', 'http://creatif-web.be/', 0);
// on n'utilise pas le HTTP_REFERER car ce n'est pas fiable et les proxy ne l'envoyent pas
header("Location: $redirection");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
</head>
<body>
</body>
</html> |
Partager