Sécuriser son site internet sous Joomla
Qui n’a pas connu son site hacké et des mois d’effort réduit à néant, moi la dernière fois, cela m’avait mis dans une rage folle. Une parade existe elle est décrit ci dessous. Attention quand même à surveiller les mises à jour des composants que vous utilisez , upgradez les chaque fois que c’est nécessaire.
Methode de protection basique:
1) bien vérifier que tous tes fichiers sont vérouillé dans l’administration. (templates index/css interdire la modification après l’enregistrement etc..)
Bien vérifier que tous tes repertoires ont un index.html (même zéro bit pas grave) ATTENTION: Sauf dans /www et /administrator
2)
- Joomla! Register Globals Emulation: OFF
- Register Globals: OFF (configuration globale, onglet « serveur » uniquement sous joomla 1.0.13)
- Magic Quotes: ON
- Safe Mode: OFF <== si possible
- File Uploads: ON
- Session auto start: OFF
3) Dans ton (ou tes) .htaccess tu rajoute au tout début ces lignes qui empecherons une eventuelle tentative de listing de celui ci:
order allow,deny
deny from all
</Files>
4) Ensuite dans le fichier globals.php Juste aprés ça:
defined( ‘_VALID_MOS’ ) or die( ‘Restricted access’ );
Tu rajoute ça:*********
if (
ereg(‘gif?cmd’,$_SERVER[‘REQUEST_URI’]) ||
ereg(‘gif&cmd’,$_SERVER[‘REQUEST_URI’]) ||
ereg(‘jpg?cmd’,$_SERVER[‘REQUEST_URI’]) ||
ereg(‘jpg&cmd’,$_SERVER[‘REQUEST_URI’]) ||
ereg(‘txt?cmd’,$_SERVER[‘REQUEST_URI’]) ||
ereg(‘txt&cmd’,$_SERVER[‘REQUEST_URI’]) ||
ereg(‘txt?’,$_SERVER[‘REQUEST_URI’])
)
{
$mail_perso = « tonadresse@mail.com« ;
$mailheaders .= « From: « .$mail_perso . « rn »;
// $mailheaders .= « Bcc: « .$mail_perso. « rn »; // pour copie cachée
$msg = « Une tentative de hacking commise sur « .$_SERVER[‘HTTP_HOST’]. » par « .$_SERVER[‘REMOTE_ADDR’]. » en appelant « .$_SERVER[‘REQUEST_URI’]. »nn »;
$msg .= « HTTP_SERVER_VARS:nn »;
$msg .= « HTTP_HOST_NAME => « .gethostbyaddr($_SERVER[‘REMOTE_ADDR’]). »nn »;
while (list ($key, $val) = each ($_SERVER)) $msg .= « $key => $valn »;
$msg = addslashes($msg);
eval(« $msg = « $msg »; »);
$msg = stripslashes($msg);
@mail($mail_perso,’HACKING TENTATIVE ‘.$_SERVER[‘REMOTE_ADDR’],$msg,$mailheaders);
$iphack = « http://www.who.is/whois-ip/ip-address/« .$_SERVER[‘REMOTE_ADDR’]. » »;
die(‘<html><head><title>Stop Hacking</title></head><body style=margin:0px;><div align= »center » style= »background-color:#CCCC33; »><br /><br /><font size= »+6″><b>Stop hacking!</b></font><br /><br /><img xsrc= »http://www.le_site.chose/ton_image_déstiné_au_hacker.gif » border= »0″><br /><br /><br /><br /><iframe width=100% height=300 frameborder=0 xsrc= »‘.$iphack.' »></iframe></div></body></html>’);
}
// *************
Sans oublier de changer:tonadresse@mail.com par ton adresse a toi et www.le_site.chose/ton_image_déstiné_au_hacker.gif
Ce script bloque les attaques et t’averti par mail quel fichier (il te donne le lien) et à partir de quel serveur le cracker a voulu injecter, tout en bloquant la tentative.
ATTENTION ! Si votre site est sujet à un grand nombre d’attaques (et vous risquez d’être surpris) alors le server mail
de votre hébergeur peut être surchargé ! Si vous ne souhaitez plus recevoir les mails de notification, supprimez simplement votre adresse mail dans le script.
Un Whois complet est retourné(Whois en panne je modifie au plus vite), ainsi qu’un jolie écran personnalisé pour le cracker
A savoir que le script est actif sur la totalité des requêtes (pas des types de requêtes) vu la modification du globals.php
En ce qui concerne les injections SQL, c’est propre au codage des composants surtout ceux qui necessite un login ou une vérification de session, si le cracker parvient (pour les plus vicelard) a te polluer avec un script en PERL alors la c’est la boîte de Pandorre qui s’ouvre….
Pour finir, il est inutile de tenir un fichier log des IP retournée comme attaquante car en général c’est du spoofing d’IP donc une chaîne sans fin.
ca marche pas!!! SOS
pb si je vais taper l’url de mon site/administrator/index2.php alors je me retrouve dans mon interface admin sans avoir besoin de me logguer!!!!!!!!!!!!!
viva la faille
bon tous mes dossiers ne sont pas vérouillé dans l’admin parce que ‘jai pas fini mon site encore est ce que ça va être résolu après?
Complément
Merci pour cet article qui me sert bien.
Si je peux rajouter quelque chose : il faut modifier le login administrateur dans la table _users de sa base de données car si un hacker reproduit le lien de mot de passe oublié et que le login utilisateur est admin ou administrator, il sera facile d’en usurper l’identité et de se procurer les parmètres du compte SuperAdmin.
merci pour toutes ces infos bien utiles
sans oublier Jsecure et sentinelle , non?
je ne trouve pas le fichier globals.php
Bonjour,
sous Joomla 1.5.14 je ne trouve pas le fichier globals.php ?
Pouvez m’aider ?
😉
sécurité
bonsoir à tous
j’utilise joomla1.5.20 et j’ai du mal à trouver ou vérifier que mes fichiers sont verrouillés( comment les verrouillés s’ils ne le sont pas).De plus ou trouver
tous ces options à mettre en off ( étape 2)
et pour terminer le fichier globals.php n’existe pas chez moi.
merci de m’apportez votre soutient
Cela ne marche que pour les versions 1.0.X
pour le Joomla 1.5.20 etc…
c’est différend
j’ai eu à lire quelque part sur le net que joomla 1.5.20 est bien sécurisé. donc plus besoin de faire ces modifications. merci