Ogranicz dostęp do obszaru administracyjnego przez IP

10

Jaki jest najlepszy sposób ograniczenia dostępu do obszaru administracyjnego przez IP w Magento? Pamiętaj, że administrator może pracować z /adminlubindex.php/admin

Francis Kim
źródło

Odpowiedzi:

9

W swoim .htaccesspliku możesz umieścić następujące kody : -

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

Gdzie 1.1.1.1jest twój adres IP?

* W ostatnim wierszu upewnij się, że nie ma odstępów między http://i %{HTTP_HOST}/. StackExchange nie zezwala na http://%publikowanie kodu, więc muszę dodać odstępy między nimi.

Hosting aspiracyjny
źródło
1
Ten kod przekierowuje ze stron administratora z ukośnikiem po admin (admin /) i czymś po ukośniku (admin / abc). Ale strona administratora jest nadal ładowana na „myeshop.com/admin”. Lepiej jest używać reguły bez ostatniego ukośnika (RewriteCond% {REQUEST_URI} ^ / (index.php /)? Admin [NC]), aby zapobiec ładowaniu strony
Martin
5

W przypadku, gdy ktoś używa 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;
}
Marty
źródło
4

Wielokrotności są obsługiwane przez dodanie kolejnej linii dopasowania

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

Zasadniczo przekłada się to na to, czy ten adres URL jest wyrażeniem regularnym, a nie te adresy, a następnie 403, nie ma Cię tutaj.

Fiasco Labs
źródło
Tylko czytanie dokumentacji: Jeśli podasz Fnastępnie Ljest dorozumiany. httpd.apache.org/docs/2.4/rewrite/flags.html . „Podczas korzystania z [F] sugerowane jest [L] - to znaczy, że odpowiedź jest natychmiast zwracana i nie są oceniane żadne dalsze reguły.”
johnsnails
2

Możesz również skonfigurować reguły „zezwalaj na” w konfiguracji httpd dla plików hosta wirtualnego. Chciałbym również zmienić adres URL administratora dla dodatkowego bezpieczeństwa (ok rodzaj nadmiarowy z „zezwól na”, ale pas i nawiasy klamrowe).

W pliku conf robię coś takiego:

<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>

Gdzie 1.2.3.4 i 5.6.7.8 to dwa dozwolone adresy IP. Może być alternatywą.

Jon Holland
źródło
1

Zezwól na dostęp administratora przez ip

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

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

RewriteCond %{REQUEST_URI} admin [NC]

RewriteRule ^(.*)$ / [F,L]
nieśmiały
źródło