Bloque des adresses IP indésirables

  Information

IMPORTANT

97% des hacks viennent de la RUSSIE et de la CHINE

Pour bloquer ces 2 pays :

Ouvrez votre fichier .htaccess et ajouter ces lignes :

 

SetEnvIf GEOIP_COUNTRY_CODE CN BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE RU BlockCountry
Deny from env=BlockCountry

RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^CN|RU$
RewriteRule .* - [F]

 

Revenons au code plus bas, qui est simple car il faut juste mettre les adresses ip à interdire dans un tableau, ou sinon, vous avez l'option de les mettre dans un fichier texte. Dans ce cas enlever les commentaires de la ligne $ip_blacklist = file('ip_blacklist.txt'); et enlever le tableau du haut et installer votre lecture de fichier à la place, attention dans ce cas ils vous faudra passer le fichier dans un tableau au préalable.

Ce code est a placer toujours en haut de vos scripts. A vous de mettre le message d'erreur que vous convient, en voici un autre clair et net: "dégagez, vous n'avez rien a faire la!!", enfin soyez pas trop dur quand meme bien que le hack, spam and co c'est toujours de trop.

  code source classé dans  Sécurité

 
 01    
 02    
 03    
 04    
 05    
 06    
 07    
 08    
 09    
 10    
 11    
 12    
 13    
 14    
 15    
 16    
 17    
 18    
 19    
 20    
 21    
 22    
 23    
 24    
 25    
 26    
 27    
 28    
 29    
 30    
 31    
 32    
 33    
 34    
 35    
 36    
 37    
 38    
                               
/*---------------------------------------------------------------*/
/*
Titre : Bloque des adresses IP indésirables

URL : https://phpsources.net/code_s.php?id=630
Auteur : azursante
Date édition : 20 Mars 2011
Date mise a jour : 13 Aout 2019

Rapport de la maj:
- fonctionnement du code vérifié
- modification de la description
Date mise a jour : 05 Mai 2022

Rapport de la maj:
- modification de la description
*/
/*---------------------------------------------------------------*/

$ip_blacklist = array('127.0.0.1','xxx.xxx.xxx.x','xxx.xxx.xxx.x');

// vous pouvez mettre les ips dans un fichiers texte et les importer
// $ip_blacklist = file('ip_blacklist.txt');

// lecture de l'ip en cours
$ip = isset($_SERVER['REMOTE_ADDR']) ? trim($_SERVER['REMOTE_ADDR']) : '';

// test si l'ip est blacklisté
if ( array_search($ip, $ip_blacklist) !== FALSE )
{
echo 'Votre IP '.$ip.' est interdite!';
// stop le script
exit;
}

// ici votre code habituel :)

?>

      Fonctions du code - Doc officielle PHP

Détail    php.net  
Description
Versions PHP
   array
Crée un tableau
PHP 4, 5, 7 et 8
   array_search
Recherche dans un tableau la clé associée à une valeur (PHP 4 >= 4.0.5, PHP 5, PHP 7)
PHP 4, 5, 7 et 8
   echo
Affiche une chaîne de caractères
PHP 4, 5, 7 et 8
   exit
Affiche un message et termine le script courant
PHP 4, 5, 7 et 8
   isset
Détermine si une variable est affectée
PHP 4, 5, 7 et 8
   trim
Supprime les espaces (ou d'autres caractères) en début et fin de chaîne
PHP 4, 5, 7 et 8

   Un petit merci aux auteurs pour leur travail, ça ne coûte rien et ça fait toujours plaisir wink

[5]

  • avatar

    KOogar

    27 Oct 2023 à 10:57

    Pour le fichier txt, il faut replacer le résultat dans le tableau $ip_blacklist_file = file('ip_blacklist.txt'); $ip_blacklist = array($ip_blacklist_ file);

  • avatar

    Invité

    24 Oct 2023 à 19:42

    Je n'arrive pas à écrire correctement le fichier .txt. Il fonctionne avec une seule adresse IP. A la deuxième, le script ne fonctionne plus. J'ai essayé avec des virgules entre chaque, de le mettre entre '  '. Sans effet.

  • avatar

    Administrateur

    23 Avril 2020 à 06:09

    Ce code est a placer dans le header de votre site, pour qu'il prenne en compte toutes les pages de votre site.

  • avatar

    Invité

    22 Avril 2020 à 23:39

    Le soucis avec ceci, c'est que l'on bloque uniquement sur une page ou plusieurs mais pas sur l'intégralité des dossiers et fichiers d'un nom de domaine. Le htaccess reste la meilleure solution. Mais comment l'automatiser sans aller fouiller dans le fichier et rajouter à chaque fois l'ip ?

  • avatar

    Invité

    17 Jan 2020 à 10:55

    Merci Bravo bonne continuation excellent travail.


 Autres snippets qui pourraient vous intéressez

Bloquer dynamiquement des IP hack et stocker ces IP dans des fichiers - PHP Sources

Compatibilité : PHP 4, PHP 5

Il faut installer un script zippé au préalable puis remplacer la fonction controle_ip() par celle que nous vous donnons.

Anonymiser les adresses IP - PHP Sources

Compatibilité : PHP 5, PHP 7, PHP 8

Ce code est une fonction qui permet d'afficher des parties d'une adresse IP sous une forme partiellement anonymisée.

Anti spam PHP basé sur les adresses IP

Compatibilité : PHP 5, PHP 7, PHP 8

Le principe est simple, allez dans vos logs bruts de votre site... Quand tout est en place, dite au revoir aux spammeurs.

Extrait des adresses emails dans un texte

Compatibilité : PHP 5, PHP 7, PHP 8

Cherche et trouve toute les adresses mails contenus dans le texte de votre choix et les place dans une tableau.

Extrait les adresses emails d'un fichier texte avec PHP

Compatibilité : PHP 5, PHP 7, PHP 8

Extrait les adresses mails d'un fichier texte (html ou pas). Les adresses sont retournées sous forme de tableau.

* Requêtes exécutées avec Recherche Contextuelle
avatar

Azursante

  20 Mars 2011

  SOURCE   Télécharger

Information sur les mises à jour

Dernière mise à jour :

    13 Aout 2019
    fonctionnement du code vérifié
    modification de la description

    05 Mai 2022
    modification de la description

15 549 Vues
Compatibilité du code
PHP 5, 7 et 8+