web-dev-qa-db-fra.com

htaccess accès au fichier par plage ip

Comment autoriser l'accès au fichier uniquement aux utilisateurs avec ip qui sont dans une plage d'adresses ip?

Par exemple, le fichier admin.php. et vont de 0.0.0.0 à 1.2.3.4.

J'ai besoin de configurer l'accès à UN SEUL fichier, pas à un répertoire.

32
Mirgorod

Ajoutez simplement une directive FilesMatch ou Files pour la limiter à un script spécifique.

Ce qui suit bloquerait l'accès à tous les scripts se terminant par "admin.php":

<FilesMatch "admin\.php$">
    Order deny,allow
    Deny from all
    Allow from 10.0.0.0/24
</FilesMatch>

Ce qui suit bloque UNIQUEMENT admin.php:

<Files "admin.php">
    Order deny,allow
    Deny from all
    Allow from 10.0.0.0/24
</Files>

Pour plus d'informations, reportez-vous à la documentation Apache sur Sections de configuration .

43
wimvds

consultez la page de manuel de la directive Autoriser

Order Deny,Allow
Deny from all
Allow from 10.1.0.0/255.255.0.0

Une adresse IP partielle

Exemple:

Allow from 10.1
Allow from 10 172.20 192.168.2

Les premiers 1 à 3 octets d'une adresse IP, pour la restriction de sous-réseau.

Une paire réseau/masque de réseau

Exemple:

Allow from 10.1.0.0/255.255.0.0

Un réseau a.b.c.d et un masque de réseau w.x.y.z. Pour un sous-réseau plus fin restriction.

Une spécification CIDR réseau/nnn

Exemple:

Allow from 10.1.0.0/16

Similaire au cas précédent, sauf que le masque de réseau est constitué de nnn d'ordre supérieur 1 bits.

24
Pascal Qyy

Vous ne pouvez pas faire correspondre une plage IP avec allow , mais vous pouvez l'émuler avec plusieurs réseaux CIDR:

Order allow,deny
# 0.0.0.0 - 0.255.255.255.255
Allow from 0.0.0.0/8
# 1.0.0.0 - 1.1.255.255
Allow from 1.0.0.0/15
# 1.2.0.0 - 1.2.1.255
Allow from 1.2.0.0/23
# 1.2.2.0 - 1.2.2.255
Allow from 1.2.2.0/24
# 1.2.3.0 - 1.2.3.3
Allow from 1.2.3.0/30
# 1.2.3.4
Allow from 1.2.3.4
10
phihag

Faites ceci pour une seule adresse IP:

<Limit GET POST>
order deny,allow
deny from all
allow from 1.2.3.4
</Limit>

Si vous voulez le faire pour une plage comme 10.x.x.x, procédez comme suit:

<Limit GET POST> 
order allow,deny 
allow from 10
deny from all
</LIMIT>
3
shamittomar

Si vous utilisez WordPress, la méthode la plus simple et la plus simple consiste à installer le plug-in - LionScripts: WordPress IP Blocker à partir du site Web http://www.lionscripts.com/ip-address-blocker

Leur version professionnelle comporte beaucoup plus de fonctionnalités telles que le blocage de pays et le blocage de plages d'adresses IP, le téléchargement en bloc de fichiers csv, etc.

1
jeevesh kumar

si vous devez fournir un caractère générique 0.0.255.255

Order allow,deny
# 1.2.0.0 - 1.2.255.255
Allow from 1.2.0.0/16

Cela donnera une plage allant de 1.2.0.1 à 1.2.255.254.

vous pouvez aussi vérifier ici

0
Allahbakash.G