Dans ce tuto, j'aborderai des petite notions de sécurité, bon du grand art, mais des petit truc sur la sécurisation des include, ou bien comment éviter que exploite votre fichier de config.
je ne rentrerai pasdans les detaille des faille XSS et des injection SQL, ce tutos regroupera de trucs et astuces.
I - Evitée l'exploitation du fichier de config
prenon un jeune codeur qui commence un site, il se dit qu'un fichier de configuration sera utile alors voila comment il organise sa page d'index
et voila son fichier de config :
(Vous me direz c'ets un exemple très exemplaire)
Bien sur ici le fichier de config ne comporte pas truc important, mais le votre si, info sur SQL (login, password, BDD) et ça tel qu'il l'est onpeut l'utiliser
suffit du créer une page et d'y metre :
vous allez me demander alors comment palier a ce detaile (oui c'ets un detail)
et je vous repondrais "DEFINE"
oui les define rien de mieux pour eviter de se faire inclure par un pirate, avec un exemple ca marchera mieux
reprenons le code du "Noob" et modifions le avec des define pour eviter que l'on puissent inclure le fichier de config:
et le fichier de config :
Explication :
dans la page d'index on définie une variable (qui ne varie pas) SITE_DU_NOOB a true
donc SITE_DU_NOOB est toujours vrai, et dans le fichier on vérifie si SITE_DU_NOOB est fausse (false), si c'est le cas, l'instruction "exit" est executé et on sort donc du code, la page ne sera pas executé, tandis que si SITE_DU_NOOB est vrai la page sera executé
et la seul page qui definie SITE_DU_NOOB a true (vrai) c'est notre index, si le pirate ne connai pas l'existance de la variable et encore moins son nom il ne poura pas exploiter le fichier de config
bien sur cette astuce peut etre aussi apliqué a d'autre pages du site, pour evitée toute intrusion et exploitation exterieur.
Dans la prochaine partie je parlerai de la securitée des include
je ne rentrerai pasdans les detaille des faille XSS et des injection SQL, ce tutos regroupera de trucs et astuces.
I - Evitée l'exploitation du fichier de config
prenon un jeune codeur qui commence un site, il se dit qu'un fichier de configuration sera utile alors voila comment il organise sa page d'index
- Code:
<?php
include "config.php"; //la mega-giga config de ouf
echo 'Bienvenu sur le site de '.$snom_du_site;
?>
et voila son fichier de config :
- Code:
<?php
//mon fichier de config
$nom_du_site = 'NoobCode';
?>
(Vous me direz c'ets un exemple très exemplaire)
Bien sur ici le fichier de config ne comporte pas truc important, mais le votre si, info sur SQL (login, password, BDD) et ça tel qu'il l'est onpeut l'utiliser
suffit du créer une page et d'y metre :
- Code:
include 'url_site/config.php';
vous allez me demander alors comment palier a ce detaile (oui c'ets un detail)
et je vous repondrais "DEFINE"
oui les define rien de mieux pour eviter de se faire inclure par un pirate, avec un exemple ca marchera mieux
reprenons le code du "Noob" et modifions le avec des define pour eviter que l'on puissent inclure le fichier de config:
- Code:
<?php
define('SITE_DU_NOOB', true); // le fameux define
include "config.php"; //la mega-giga config de ouf
echo 'Bienvenu sur le site de '.$snom_du_site;
?>
et le fichier de config :
- Code:
<?php
//mon fichier de config
if (!defined('SITE_DU_NOOB'))exit;
$nom_du_site = 'NoobCode';
?>
Explication :
dans la page d'index on définie une variable (qui ne varie pas) SITE_DU_NOOB a true
donc SITE_DU_NOOB est toujours vrai, et dans le fichier on vérifie si SITE_DU_NOOB est fausse (false), si c'est le cas, l'instruction "exit" est executé et on sort donc du code, la page ne sera pas executé, tandis que si SITE_DU_NOOB est vrai la page sera executé
et la seul page qui definie SITE_DU_NOOB a true (vrai) c'est notre index, si le pirate ne connai pas l'existance de la variable et encore moins son nom il ne poura pas exploiter le fichier de config
bien sur cette astuce peut etre aussi apliqué a d'autre pages du site, pour evitée toute intrusion et exploitation exterieur.
Dans la prochaine partie je parlerai de la securitée des include