Vérification de l'intégrité des fichiers


'; } print 'Vérification du fichier de validation ...'; if (sha1(sha1_file(__FILE__)) != $SUM) { die(' INVALIDE !
Arrêt du processus de validation !'); } else { print ' Valide

'; } print 'Recherche du fichier de sauvegarde ...'; if (is_file(FILE_SAV) && !isset($_GET['erase'])) { function parcourDir($dir, $sums) { if (isset($_GET['v'])) { print "
Parcours du dossier à la recherche de nouveaux fichiers : ".$dir; } $new = 0; $pointeur = opendir($dir); while ($fichier = readdir($pointeur)) { if ($fichier == '.' || $fichier == '..' || $fichier == '.svn' || preg_match("#~#", $fichier)) { continue; } if (is_dir($dir.$fichier) && is_readable($dir.$fichier)) { $new += parcourDir($dir.$fichier.'/', $sums); } elseif (is_file($dir.$fichier)) { if (!isset($sums[$dir.$fichier])) { $new++; print "".$dir.$fichier."Nouveau fichier !"; } } } closedir($pointeur); return $new; } print ' Trouvé

'; if (isset($_GET["check"])) { print 'Contrôle de la somme de la dernière validation ...'; if (sha1(sha1_file(FILE_SAV).'<^>'.sha1_file(__FILE__).sha1_file('checkSum.php')) == $_GET["check"]) { print ' Authentique

'; } else { die(' Invalide !
Arrêt du processus de vérification !'); } } else { print 'Les résultats présentés ci-dessus ne peuvent pas être authentifiés sans la somme d\'un précédent contrôle, rien ne dit que les fichiers de validation n\'ont pas été modifiés !

'; } $start = unserialize(file_get_contents(FILE_SAV)); print ' Vérification des fichiers ...'; print ''; $alerte = 0; foreach ($start as $key => $sum) { if (!is_file($key)) { $alerte++; if (!isset($_GET['a'])) { print ""; } } elseif (sha1_file($key) != $sum) { $alerte++; print ""; } elseif (isset($_GET['v'])) { print ""; } } $newFiles = parcourDir(dir_start, $start); print '
Nom du fichierDétails
".$key."Fichier supprimé !
".$key."Alerte de différence de somme !
".$key."Ok
'; print '
Fin de la vérification : '.$alerte.' alerte(s) sur '.count($start).' fichier(s). '.$newFiles.' nouveau(x) fichier(s).'; print '

Contôle de la prochaine validation : '.sha1(sha1_file(FILE_SAV).'<^>'.sha1_file(__FILE__).sha1_file('checkSum.php')); } else { if (isset($_GET['erase']) && $_GET['erase'] == $SUM) { print ' Trouvé
Détection d\'une demande d\'effacement

'; } elseif (!is_file(FILE_SAV)) { //print ' Introuvable

'; die(' Introuvable

Arrêt de la vérification.'); } else { die(' ?

Impossible de déterminer l\'origine de la requête !
Arrêt de la vérification.'); } function extractDir($dir) { $sums = array(); if (isset($_GET['v'])) { print "
Génération des sommes de fichiers pour le dossier : ".$dir; } $pointeur = opendir($dir); while ($fichier = readdir($pointeur)) { if ($fichier == '.' || $fichier == '..' || $fichier == '.svn' || preg_match("#~#", $fichier)) { continue; } if (is_dir($dir.$fichier) && is_readable($dir.$fichier)) { $sums = array_merge($sums, extractDir($dir.$fichier.'/')); } elseif (is_file($dir.$fichier)) { $sums[$dir.$fichier] = sha1_file($dir.$fichier); } } closedir($pointeur); return $sums; } print 'Génération du tableau ...'; $sums = array(); $sums = extractDir(dir_start); print "Écriture du fichier.
"; file_put_contents(FILE_SAV, serialize($sums)); print "Fin de l'opération.
"; } ?>