Batasi akses ke area admin oleh IP

10

Apa cara terbaik untuk membatasi akses ke area admin dengan IP di Magento? Ingatlah bahwa admin dapat bekerja dari /adminatauindex.php/admin

Francis Kim
sumber

Jawaban:

9

Anda dapat menempatkan kode berikut ke dalam .htaccessfile Anda : -

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

Di mana 1.1.1.1alamat IP Anda.

* Untuk baris terakhir, pastikan tidak ada spasi antara http://dan %{HTTP_HOST}/. StackExchange tidak mengizinkan kode http://%untuk diposting jadi saya harus menambahkan spasi di antaranya.

Hosting Aspirasi
sumber
1
Kode ini mengalihkan dari halaman admin dengan slash setelah admin (admin /) dan dengan sesuatu setelah slash (admin / abc). Tetapi halaman admin masih dimuat di "myeshop.com/admin". Lebih baik menggunakan aturan tanpa garis miring terakhir (RewriteCond% {REQUEST_URI} ^ / (index.php /)? Admin [NC]) untuk mencegah pemuatan halaman
Martin
5

Jika ada yang menggunakan 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
sumber
4

Kelipatan ditangani dengan menambahkan garis kecocokan lain

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

Pada dasarnya ini diterjemahkan menjadi jika url ini regex, dan bukan alamat ini, maka 403, Anda keluar dari sini.

Laboratorium Fiasco
sumber
Hanya membaca dokumentasi: Jika Anda tentukan Fmaka Ltersirat. httpd.apache.org/docs/2.4/rewrite/flags.html . "Ketika menggunakan [F], sebuah [L] tersirat - yaitu, responsnya segera dikembalikan, dan tidak ada aturan lebih lanjut yang dievaluasi."
johnsnails
2

Anda juga dapat mengatur aturan "allow from" di konfigurasi httpd untuk file host virtual. Saya juga akan mengubah URL admin untuk keamanan tambahan (ok jenis redundan dengan "allow from" s tetapi belt and braces).

Di dalam file conf saya melakukan sesuatu seperti ini:

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

Di mana 1.2.3.4 dan 5.6.7.8 adalah dua alamat IP yang diizinkan. Bisa jadi alternatif.

Jon Holland
sumber
1

Izinkan akses admin melalui ip

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

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

RewriteCond %{REQUEST_URI} admin [NC]

RewriteRule ^(.*)$ / [F,L]
shyopat
sumber