Bon à savoir FAQ
Perdu l'accès à l'administration ?
Vous avez perdu l"accès à l'administration de votre site ou besoin de changer votre password ou celui d'un membre; Phil Taylor met à disposition un Générateur en ligne sur connexion sécurisée.
Accédez à votre base de données et la table jos_users dans le
champ username mettre ce qu'il vous convient et dans le champ password celui généré puis "Executer" pour que les changements soient pris en compte. voir l'exemple
Comment éviter que cela se reproduise ?
-effectuez les mise à jour de joomla et des composants,modules installés
- bloquez l'accès à l'administration du site par htaccess pour ceux qui possèdent un IP statique.
exemple du htaccess placé dans administrator:
Code:
<filesmatch "\.php$">
deny from all
allow from 86.248.198.220
</filesmatch>
ici c'est simple tout IP sera bloqué renvoie erreur 403 sauf pour 86.248.198.220 (vous; ip fictif pour l'exemple donc mettez la votre à la place et celles des autres admin s'ils ont un IP fixe)
de plus il vous est possible de personnaliser votre page d'erreur 403 en mettant dans le htaccess de la racine du site
Code:
ErrorDocument 403 http://votresite.fr/interdit.htm
Comment sécuriser certains modules et composants ?
Enlever la visibilité de l'identifiant
Composant Remostory (édition en cours)
Module Whoisonline -> correctif
note : cette exemple de blocage vous aurait protégé de la faille (avant J1.56)
pas pour le reset du pass mais l'auteur n'aurait pas reussi à rentrer dans l'administration du site.
Mon site a été hacké comment puis je connaître les fichiers modifiés ?
Editer avec le notepd.exe un nouveau fichier et donnez lui le nom qu'il vous convient. (exemple: verif.php) et mettez le à la racine de votre site par le client ftp.
Appelez le par votre navigateur http://monsite.fr/verif.php
une fois terminée votre recherche supprimer ce fichier de votre ftp.
Il vous est conseillé de procéder par répertoire donc prenez soin de regarder et de bien les nommer dans le champ sans oublier de mettre "/" à la fin.
Code PHP:
<?php
/*
Donne la liste des derniers fichiers créés ET modifiés.
Très utile en cas de piratage pour savoir quels fichiers sont ajoutés et ceux qui ont été modifiés. Utile pour comprendre le comportement d'un script ou d'un CMS et voir quels fichiers ont été manipulés.
Crédits: Les 4/5 du code sont l'oeuvre de Linda MacPhee-Cobb (http://timestocome.com)
*/
$go_back = 0; // affiche résultat ou non
$i = 0; // compteur de boucle
$dir_count = 0; // initialisation de la boucle
$date = time(); // date et heure actuelle
$one_day = 86400; // nombre de secondes pour une journée
$days = preg_replace("/[^0-9]/i",'', $_POST["jours"]); // nombre de jours à vérifier
$path = preg_replace("/[^_A-Za-z0-9-\.%\/]/i",'', $_POST["chemin"]); // chemin de fichier absolu (avec nettoyage contre piratage)
$path = preg_replace("/\.\.\//",'', $path); // on interdit la commande ../
define('ABSPATH', dirname(__FILE__));
$path = ABSPATH.$path; // chemin de fichier absolu de votre compte du genre /home/loginftp/www/ etc.
$directories_to_read[$dir_count] = $path;
// Formulaire pour remonter le temps
print "<html><body><h3>Formulaire de Contrôle des derniers fichiers modifiés.</h3>";
print "<table><tr><td>";
print "<form method=\"post\">";
print "<tr><td>Nombre de jours à vérifier 1-99: </td>";
print "<td> <input type=\"text\" name=\"jours\" maxlength=\"2\" size=\"2\"></td></tr>";
print "<tr><td>Nom du répertoire à contrôler: </td>";
print "<td>".ABSPATH." <input type=\"text\" name=\"chemin\" maxlength=\"80\" size=\"30\" value=\"/\" > (mettre un / à la fin)</td></tr>";
print "<tr><td> </td><td><input type=\"submit\" value=\" Vérifier Fichiers \">";
print "</form>";
print "</td></tr></table>";
// Affichage du résultat
$go_back = $one_day * $days;
print "<br /> Retour sur les <strong>" . ($go_back/$one_day) ."</strong> derniers jours. <br /><br />";
if ( $go_back > 0 ){
print "<table><tr><th>Nom du Fichier</th><th>Date de modification</th></tr>";
$diff = $date - $go_back;
while ( $i <= $dir_count ){
$current_directory = $directories_to_read[$i];
// obtenir info fichier
$read_path = opendir( $directories_to_read[$i] );
while ( $file_name = readdir( $read_path)){
if (( $file_name != '.' )&&( $file_name != '..' )){
if ( is_dir( $current_directory . "/" . $file_name ) == "dir" ){
// besoin d'obtenir tous les fichiers d'un répertoire
$d_file_name = "$current_directory" . "$file_name";
$dir_count++;
$directories_to_read[$dir_count] = $d_file_name . "/";
}else{
$file_name = "$current_directory" . "$file_name";
// Si temps modifiés plus récent que x jours, affiche, sinon, passe
if ( (filemtime( $file_name)) > $diff ){
print "<tr><td> $file_name </td>";
$date_changed = filemtime( $file_name );
$pretty_date = date("d/m/Y H:i:s", $date_changed);
print "<td> ::: $pretty_date</td></tr>" ;
}
}
}
}
closedir ( $read_path );
$i++;
}
print "</table>";
print "</body></html>";
} // if go_back > 0 )
?>
voilà qui devrait éviter à beaucoup une complète réinstallation de leur site.
@+