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.
"; } ?>