Tutoriel Vidéo PHP : Sécurité, les failles include

Dans ce tutoriel vidéo nous verrons les précautions à prendre dans le cas où l'on utilise la fonction include utilisant un paramètre qui peut être modifié par l'utilisateur. La principale vérification consistant à utiliser les expression régulière pour éviter l'inclusion de scripts distants...


Télécharger la vidéo
(Réservé aux premiums)


Après avoir appris sur Internet quoi de plus normal que de partager à son tour ? Passionné par le web depuis un peu plus de 5 ans maintenant j'aime partager mes compétences et mes découvertes avec les personnes qui ont cette même passion pour le web : Vous.

Vous aimerez aussi

Youtube Data API

Youtube Data API
37m

Envie d'uploader ou de lister des vidéo youtube directement en PHP ? Ce...

Système d'alerte

Système d'alerte
16m

Dans ce tutoriel vidéo vous découvrirez comment mettre en place un...

23 commentaires
Ajouter un commentaire

pmu sport Il y a 2 ans Répondre

merci pour le tuto

comparateur bookmaker Il y a 2 ans Répondre

super clair, merci beaucoup!

Keizan Il y a 2 ans Répondre

Merci pour ce tuto !
Seul problème, j'espère que vous pourrez me venir en aide ! C'est que lorsque nous nous rendons directement sur index.php nous obtenons ceci :

Notice: Undefined index: file in C:\wamp\www\index.php on line 26
erreur

Le script utilisé est le même que celui du tutoriel.

<?PHP
if(preg_match("#^[a-zA-Z0-9]+$#",$_GET['file'] ))
{
include "file/".$_GET['file'].".php.";
}
else
{
echo 'erreur';
}
?>

Merci!

dan4 Il y a 2 ans Répondre

Passage obligé à la page1.php avant la page2.php

possible de placer un code test sur la page2.php pour obliger d'avoir été sur la page1.php?

J'ai pensé à OB_START un tuto serait apprécié.

souifi Il y a 2 ans - Répondre

Par le biais de hatcess ou tu autorise que ton serveur, de session, cookie...
Tu peut aussi utiliser initialiser une variable avant l'include
//page 1
$token = true;
include 'page2.php';
//ta page 2
if(!isset($token)) header('location:erreur.php');
Enfin sa c ce qui me vient d'entrés, il y a surement d'autres moyen... Âpres a toi d'adapter selon tes besoins.

lotar0 Il y a 2 ans Répondre

Petite question : n'est pas plus simple de se prémunir de cette faille de la manière dont tu le fais dans ton tutoriel sur le découpage en php ? A savoir de cette façon lapar exemple : if(!file_exists("contenu/".$_GET['p'].".php")){ $_GET['p']="404";}
Merci

WOOoinux Il y a 2 ans Répondre

Merci pour tes réponses Badbart, je vais me documenter sur la fonction $_GET.

WOOoinux Il y a 2 ans Répondre

Bonjour et merci pour ce tuto.

Petite question :

J'utilise la fonction include pour appeler une page html comme ceci :

<?php include 'page.html'; ?>

Dois-je aussi procéder à cette sécurité?

Seconde question :

<?php include $_GET['page.html']; ?> ne fonctionne pas est-ce normal ?

Mes questions peuvent vous paraitre stupide mais je ne suis pas encore un crack en php.

D'avance merci pour vos réponses.

Badbart Il y a 2 ans - Répondre

Question 1 : Oui. C'est une faille avec la fonction include, le type de fichier change pas rien chose.

Question 2 : Oui c'est normal que ça fonctionne pas. On ne récupère pas les infos comme ça. Dans cette url test : index.php?page=contact&pseudo=test
Pour récupérer "contact" on fait $_GET['page'] et pour récupérer "test" on fait $_GET['pseudo'] . Documente toi sur les fonctions $_GET chez google pour plus d'info.

Une fois que tu auras compris comment est découper un url, tu verras que c'est beaucoup plus simple.

alexletyran Il y a 2 ans Répondre

Salut,
Pour les chaud dans le genre y a aussi:
if(isset($_GET['page'])){
$tabpage = array("inscription","index","blabla");
$tt = sizeof($tabpage);
$page = $_GET['page'];
$i = 0;
do{
if ($page == $tabpage[$i]){
include ($page . '.php');
}
//echo $page." : ".$tabpage[$i];
$i++;
}
while (($i<$tt) && ($page != $tabpage[$i-1]));
if($page != $tabpage[$i-1]){
echo "Cette pas n'existe pas";
}
}
else{
//include("");
}


Le truc lourd comme vous pouvez le voir c'est bien qu'il faut a chaque page que l'ont a ajouter sont nom dans le tableau !
a++

FredoMkb Il y a 2 ans Répondre

Très bon toto, bravo !

Une petite astuce que j'utilise et l'ajout d'un préfixe aux fichiers à inclure puis à concaténer ce préfixe avec la variable récupérée dans l'Url, par ex. :

<?php
include('prefixe_'.$_GET['page']);
?>

C'est une bidouille mais ça fonctionne plutôt bien...

Merci et bravo encore !

Nouipoz Il y a 3 ans Répondre

Mais peut-on utiliser le phpmyadmin pour notre site sa marche même sur un hebergeur?

merci

Nouipoz Il y a 3 ans Répondre

ah merci beaucoup :d

Nouipoz Il y a 3 ans Répondre

Bonjour , moi a la 1er étape déjà il m'affiche :

Fatal error: Call to undefined function shal() in C:\wamp\www\espace\index.php on line 2

Que faire , merci

Grafikart Il y a 3 ans - Répondre

sha1, c'est un 1 (chiffre) pas un l

ilyesn Il y a 3 ans Répondre

Re lol en faite je vient de trouver voilà le code :
<?php
$vide="";
if ($_GET['page'] != $vide){
if (preg_match ("#^[0-9]+$#", $_GET['page'] ))
{
include("page.php");
}
else{
echo"n'essaye pas de me pirater";
}
}
else{
include("page.php");
}
?>
Merci encore pour t'es tutoriel.

ilyesn Il y a 3 ans Répondre

Salut merci déjà pour t'est tutorial, mais j'ai un petit problème avec ce tuto en faite sa marche bien cependant lorsque je met juste l'adresse de ma page sans "?p=" cela m'affiche l'erreur. Tu n'aurais pas une solution ?

iankoOol Il y a 3 ans Répondre

Merci merci pour les 3 tutos d'affilés,

H@v a nice day !

leknoppix Il y a 3 ans Répondre

Je te remercie de cette information? bonne continuation pour les tutoriels suivants.

Grafikart Il y a 3 ans Répondre

@leknoppix : On est jamais trop prudent . Mais si tu fais bien ton url rewriting normalement tu te prémuni contre ce genre de souci...

leknoppix Il y a 3 ans Répondre

Bravo bonne continuation. Question con, mais si tu utilises les url rewriting, est ce que l'exemple que tu montres peut également se produire?

ludouze Il y a 3 ans Répondre

Merci beaucoup

+1 pour cakephp !

datijeru Il y a 3 ans Répondre

Bonjour,
Je n'ai plus les mots pour te remercier.
Merci, pour tes tutos très professionnels.
Prépares-tu d'autres tutos sur CakePHP?

Babou Il y a 3 ans Répondre

Merci pour tous c'est tuto sur la sécu en php !
:D

fedora Il y a 3 ans Répondre

merci Grafikart , j'ai du chance cet fois

Lyes Il y a 3 ans Répondre

Merci,3 jolis cadeaux pour mon anniversaire !

Merci encore et bonne journée

Laisser un commentaire

Si vous avez une question il est conseillé d'utiliser le forum si vous voulez une réponse sûre.