Afficher un message
Vieux 22/08/2007, 11h09   #8
Denis Beauregard
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Blocage des visiteurs non autoriser par IP/HOSTNAME

Le 20 Aug 2007 07:31:14 GMT, DEFFiCE <deffice@gmail.com> écrivait dans
fr.comp.lang.php:

>Bonjour à tous !
>Je suis à la recherche d'un script si il existe déjà ou de la manière
>à m'y prendre si il n'existe pas.
>Je vous explique j'aimerais réaliser où avoir un script qui permet de
>protéger mon site internet de mon entreprise.


Pourquoi pas un simple mot de passe et le fichier .htaccess qui
est fait dans ce but ? Techniquement, on pourrait placer ce
fichier dans les dossiers dont l'accès est limité et tous
pointeraient vers un fichier unique avec les mots de passe des
usagers autorisés.

En PHP, j'ai adopté une solution similaire. Le visiteur démarre une
session lors qu'il arrive au site, saisit son code d'usager et son mot
de passe. Ceci a pour effet à la fois de noter dans la session qu'il
a droit de visiter les pages privées et de remettre à zéro les
compteurs si on limite le nombre de pages vues par jour. De plus,
l'entrée est impossible sans mot de passe.

Ensuite, chaque page dont l'accès est restreint débute avec un même
include qui vérifie que la session est déjà lancée et que le visiteur
a le droit de voir la page.

Dans mon code, il y a un exit() si l'accès est refusé et la page est
d'une couleur différente, donc l'usager habitué voit rapidement qu'il
s'est déconnecté.

Pour des raisons de sécurité, il est préférable de faire soi-même le
code.

Pour les raisons expliquées par les autres, à moins d'utiliser un
intranet ou un extranet avec des adresses permises, il est impossible
d'avoir une sécurité acceptable avec l'IP et un FAI public.

Si vous avez un extranet (l'accès vient toujours d'un poste de la
même entreprise) et en se rappelant que le spoofing est possible,
le code serait en gros le suivant:

function testip () {
$ip = $_SERVER['REMOTE_ADDR'];
if ($ip>='64.65.66.0' && $ip<='64.65.66.999') { return true; };
//accepter 64.65.66.0 à 64.65.66.255
//tenir compte des cas comme: 64.3 est plus grand que 64.21
return false;
}



Denis
  Réponse avec citation
 
Page generated in 0,05068 seconds with 9 queries