Page 1 sur 1

Sécurité avec lien en $_GET

Posté : 25 nov. 2005, 18:43
par brani
bonjour voila je voudrai savoir est ce que la façon dont
je traite les lien est sécuriser ou pas
voici mon code
if (isset($_GET['lien'])){
$lien = $_GET['lien'];

switch ($lien) {

case 'accueil':
include 'affichage_page/accueil.php'; 
break;

case 'article':
include 'affichage_page/article.php'; 
break;

case 'jeux':
include 'affichage_page/jeux.php'; 
break;

case 'photos':
include 'affichage_page/photos.php'; 
break;

case 'contact':
include 'affichage_page/contact.php'; 
break;

default:
include 'affichage_page/erreur.php'; 

}
}
else { include 'affichage_page/accueil.php'; }
?>

Posté : 25 nov. 2005, 18:56
par brani
up

Posté : 25 nov. 2005, 20:15
par jobherzt
qu'entends tu par "securisé" ?

Posté : 25 nov. 2005, 20:26
par brani
qu'il n'ya pas de faille exploitable

si j'ai bien fait les chose corectement

Posté : 25 nov. 2005, 20:34
par Damien
De cette façon là il n'y a pas de problème. Il y a d'autres manières de faire la même chose, mais c'est sécurisé.

Posté : 25 nov. 2005, 23:20
par brani
Ok merci de m'avoir repondu

Posté : 26 nov. 2005, 09:05
par Cyrano
Il y a une manière de simplifier ton script légèrement que j'utilise moi-même. Proposition:
<?php
/* On récupère s'il existe le paramètre de lien, par défaut s'il n'y en a pas, on assigne "accueil" */
$lien = (isset($_GET['lien'])) ? $_GET['lien'] : "accueil";
/* On teste la valeur du lien et on défini quelle page il faut afficher */
switch ($lien)
{
    case 'accueil':
    $page_affichee = 'accueil.php';
    break;

    case 'article':
    $page_affichee = 'article.php';
    break;

    case 'jeux':
    $page_affichee = 'jeux.php';
    break;

    case 'photos':
    $page_affichee = 'photos.php';
    break;

    case 'contact':
    $page_affichee = 'contact.php';
    break;

    default:
    $page_affichee = 'erreur.php';
}
/* On définit une constante à laquelle on assigne le chemin vers la page à afficher */
define("PAGE_ACTIVE", "affichage_page/". $page_affichee);
/* On inclus la page sélectionnée */
include(PAGE_ACTIVE);
?>
Ça marche tout aussi bien et tu réduis le code à écrire.

Posté : 26 nov. 2005, 13:49
par brani
mouai je suis rester 5min sur ton code
pour voir l'interet elle est plus propre ta methode


merci je l'adopte

Posté : 26 nov. 2005, 13:56
par Cyrano
J'ajouterais que ça peut présenter un avantage : si tu as un nombre appréciable de pages et que pour une raison x ou y tu doives impérativement renommer ton répertoire, tu n'as qu'une ligne à modifier et non autant que lignes qu'il y a de pages.

Posté : 26 nov. 2005, 15:23
par brani
javou c'est vrais

j'ai beaucoup a apprendre encore ca fait bientot 1ans que j'apprend le php

il me reste du chemain