Restreindre l'accès à la zone d'administration par IP

10

Quelle est la meilleure façon de restreindre l'accès à la zone d'administration par IP dans Magento? Gardez à l'esprit que l'administrateur peut travailler à partir de /adminouindex.php/admin

Francis Kim
la source

Réponses:

9

Vous pouvez placer les codes suivants dans votre .htaccessfichier: -

RewriteCond %{REQUEST_URI} ^/(index.php/)?admin/ [NC]
RewriteCond %{REMOTE_ADDR} !^1\.1\.1\.1
RewriteRule ^(.*)$ http://%{HTTP_HOST}/ [R=302,L]

1.1.1.1est votre adresse IP.

* Pour la dernière ligne, assurez-vous qu'il n'y a pas d'espacement entre http://et %{HTTP_HOST}/. StackExchange ne permet pas la publication du code http://%, je dois donc ajouter un espacement entre les deux.

Hébergement par aspiration
la source
1
Ce code redirige les pages d'administration avec une barre oblique après admin (admin /) et avec quelque chose après la barre oblique (admin / abc). Mais la page d'administration est toujours chargée sur "myeshop.com/admin". Est-il préférable d'utiliser la règle sans la dernière barre oblique (RewriteCond% {REQUEST_URI} ^ / (index.php /)? Admin [NC]) pour empêcher le chargement de la page
Martin
5

Si quelqu'un utilise Nginx:

location ~* ^/(index\.php/bcknd|bcknd) {
    allow 1.1.1.1;

    try_files $uri $uri/ /index.php?$args;
    location ~* \.php$ { try_files /dummy @proxy; }
    deny all;
}
MartyS
la source
4

Les multiples sont gérés en ajoutant une autre ligne de correspondance

RewriteCond %{REQUEST_URI} ^/(index.php/)?admin(.*) [NC] 
RewriteCond %{REMOTE_ADDR} !^10\.1\.1\.10
RewriteCond %{REMOTE_ADDR} !^10\.2\.1\.10
RewriteRule .* - [F,L]

Fondamentalement, cela se traduit par si cette expression rationnelle d'URL, et non ces adresses, alors 403, vous êtes hors d'ici.

Fiasco Labs
la source
Il suffit de lire la documentation: Si vous spécifiez Falors Lest implicite. httpd.apache.org/docs/2.4/rewrite/flags.html . "Lors de l'utilisation de [F], un [L] est implicite - c'est-à-dire que la réponse est renvoyée immédiatement et aucune autre règle n'est évaluée."
johnsnails
2

Vous pouvez également configurer des règles "autoriser à partir de" dans la configuration httpd pour les fichiers d'hôte virtuel. Je changerais également l'URL d'administrateur pour plus de sécurité (ok sorte de redondance avec le "allow from" s mais ceinture et bretelles).

Dans le fichier conf, je fais quelque chose comme ceci:

<Location /index.php/mynewadminname>
  Order deny,allow
  deny from all
  #home
  allow from 1.2.3.4
  #office
  allow from 5.6.7.8
</Location>
<Location /mynewadminname>
  Order deny,allow
  deny from all
  #home
  allow from 1.2.3.4
  #office
  allow from 5.6.7.8
</Location>

Où 1.2.3.4 et 5.6.7.8 sont deux adresses IP autorisées. Cela pourrait être une alternative.

Jon Holland
la source
1

Autoriser l'accès administrateur par IP

RewriteCond %{REMOTE_ADDR} !^10\.125\.192\.50

RewriteCond %{REMOTE_ADDR} !^10\.125\.192\.50

RewriteCond %{REQUEST_URI} admin [NC]

RewriteRule ^(.*)$ / [F,L]
timide
la source