通过IP限制对管理区域的访问


10

Magento中通过IP限制对管理区域的访问的最佳方法是什么?请记住,管理员可以通过/adminindex.php/admin

Answers:


9

您可以将以下代码放入.htaccess文件中:

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

1.1.1.1您的IP地址在哪里。

*对于最后一行,请确保http://和之间没有空格%{HTTP_HOST}/。StackExchange不允许http://%发布代码,因此我必须在两者之间添加一个空格。


1
此代码从管理页面重定向,在管理页面上,在admin(admin /)后加斜杠,在斜杠(admin / abc)后加斜杠。但是管理页面仍加载在“ myeshop.com/admin”上。最好使用没有最后斜杠的规则(RewriteCond%{REQUEST_URI} ^ /(index.php /)?admin [NC])来防止页面加载
Martin

5

如果有人使用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;
}

4

通过添加另一条匹配线来处理倍数

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

基本上,它将转换为该url正则表达式,而不是这些地址,然后是403,则表示您不在这里。


仅阅读文档:如果指定,FL暗含。httpd.apache.org/docs/2.4/rewrite/flags.html。“使用[F]时,将暗示[L]-即立即返回响应,并且不评估其他规则。”
johnsnails

2

您还可以在httpd配置中为虚拟主机文件设置“允许来自”规则。我还将更改管理URL,以提高安全性(可以的带“括号”但带和花括号的也可以)。

在conf文件中,我执行以下操作:

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

其中1.2.3.4和5.6.7.8是两个允许的IP地址。可能是另一种选择。


1

允许通过ip进行管理员访问

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

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

RewriteCond %{REQUEST_URI} admin [NC]

RewriteRule ^(.*)$ / [F,L]
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.